前期准备

微信小程序作为现在流行的一种应用载体,很多小伙伴都有对其做自动化测试的需求,由于腾讯系 QQ、微信等是基于腾讯自研 X5 内核,不是谷歌原生 webview,所以调试会有些许差异(现在很多 app 产品也开始流行采用 X5 内核作为其内嵌 Web 浏览服务)。

genymotion、夜神等模拟器是intel的X86架构,很多app安装不了,比如微信、qq等(虽然说可以通过安装arm解释器来解决该问题,但是进行X5内核调试的话也会出现问题),建议最好是一台真实的手机来做。

需要注意的是 X5 内核只支持手机,模拟器是不支持的。调试和抓取小程序webview这些都需要真机完成

链接:http://testingpai.com/article/1615452452052

https://www.cnblogs.com/yyoba/p/9455519.html

1、       
打开手机微信调试模式

微信基于腾讯自研X5内核,所以需要对手机开启X5调试模式,设置允许抓取小程序的Inspect,方便对页面元素进行定位,这些工作的前提都需要开启调试模式

打开webview微信小程序的开关

1、 往文件助手或微信好友发送http://debugx5.qq.com,这个页面可正常打开,X5内核的设置页面

2、
如果点击这个http://debugx5.qq.com,进到的页面提示当前非X5内核,按照给出的提示操作,聊天框输入http://debugtbs.qq.com并点击,提示要在聊天输入框输入debugmm.qq.com/?forcex5=true

3、
根据提示,在聊天输入框输入debugmm.qq.com/?forcex5=true,并点击,弹出如下

4、 成功切换之后,再点击http://debugx5.qq.com,就可以进到X5调试内核页面

5、 首次打开,要安装线上内核,点击【安装线上内核】,会自动开始下载,下载完成后,提示重启,点击重启;最好将微信也一起结束进程重启一下。

6、 点击DebugX5,进可以进到第一步的页面,设置抓取小程序webview的开关了

7、 如果第六步报“debugx5页面仅在x5内核时有效,由于当前没有使用X5内核,无法打开Debugx5”,这个时候微信重启,重新打开吧

2、       
验证是否能抓到微信小程序的webview

前提条件:手机通过数据线连接到电脑端,电脑端打开chrome,输入chrome://inspect/#devices,即可在这里看到连接的设备和抓取到信息。

Chrome 自带的 inspect 工具识别小程序/内嵌 Web 页面需要访问外网

建议使用:uc-devtools进行抓取inspect,国内有些限制,抓取到的inspect为空白。下载地址:https://dev.ucweb.com/(注:不能在谷歌浏览器下载,弹不出下载提示框)

打开微信,调起小程序,就可以查看抓到的webview了

3、       
!!!微信最新版本不能抓取到webview

安装了微信最新版本,操作小程序,怎么都抓不到小程序的webview

解决方案:降低微信版本到7.0.22

操作方法:

1、有些应用商场是有历史版本可以下载的,可先下载应用商城,搜索微信,选择历史版本,选择7.0.22进行安装(7.0.10版本太低,登录提示要用新版本)

豌豆荚可用

2、卸载最新版本前,先将手机的聊天记录备份到电脑端,使用完之后,可以将电脑端的聊天记录恢复到手机

3、重装了7.0.22版本的微信后,打开微信小程序的webview的方法同第一大点的步骤,抓不到,重启再试试!

参考文章:https://blog.csdn.net/weixin_46003972/article/details/120670598

实际操作

1、配置chromeDriver

和app自动化类似,依靠appium做自动化,小程序本质上还是 Web 页面,我们可以通过 chromeDriver 驱动小程序页面执行,小程序因为使用的 X5 内核是经过腾讯二次开发过之后的,所以 chromeDriver 驱动与 webview 版本匹配并不严格按照官方 Appium 说明的匹配规则,这里试验了几个版本的 chromeDriver,发现 V2.40 版本

下载地址:https://npm.taobao.org/mirrors/chromedriver

下载完毕后解压,将 chromeDriver 替换到 Appium 的自带 chromeDriver 所在路径:

Appium.exe所在路径\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win

下载完成后,到appium配置驱动的执行路径,设置前置,使用这个前置启动

2、获取小程序的对应进程名

在获取小程序进程名前,要先获取微信的包名

com.tencent.mm

获取小程序的进程名

adb shell dumpsys activity top | findstr ACTIVITY

3、uc-devtools进行元素的定位,编写定位元素的定位

3、代码实现

1、 和app自动化一样,要先打开app,打开app的配置信息

2、启动微信进入到主页->
下滑展开小程序列表-> 点击对应小程序

3、进入到小程序,实际上是webview,需要切换到webview进行操作,这个时候就需要用到切换上下文,switch_to.context()

4、切换到小程序之后,实际上是操作chrome页面,定位元素要用回要用webdiriver的定位元素的BY

参考:https://www.cnblogs.com/lizhe860/p/14486432.html(详细讲解了小程序)

微信小程序自动化_从环境搭建到自动化代码实现过程的更多相关文章

  1. 【微信小程序】---线上环境搭建

    一.前言 通常我们在本地电脑上开发微信小程序,调用和访问小程序会有很多问题.特别是在配有自己后端的情况下,我们通过真机访问我们的小程序会出现不可访问的问题 二.线上环境搭建 在这里我们主要以腾讯云给大 ...

  2. Vue+koa2开发一款全栈小程序(5.服务端环境搭建和项目初始化)

    1.微信公众平台小程序关联腾讯云 腾讯云的开发环境是给免费的一个后台,但是只能够用于开发,如果用于生产是需要花钱的,我们先用开发环境吧 1.用小程序开发邮箱账号登录微信公众平台 2.[设置]→[开发者 ...

  3. 微信小程序入门 第一个页面搭建

    首先搭建首页 微信小程序与web程序非常相似  有非常多的组件  多个组件形成一个页面 每个组件有自己一些特殊的属性来控制显示效果 通过js注册事件控制响应 首先使用swiper实现一个banner轮 ...

  4. 微信小程序开发之https服务器搭建三步曲

    本篇文章主要讲述3个方面的内容,如下: 1.SSL证书的获取 2.服务器 Nginx SSL 证书的配置. 3.如何兼容80端口和443端口以及为什么要同时兼容这两个端口. 1.SSL证书的获取 ht ...

  5. 微信小程序富文本渲染组件html2wxml及html2wxml代码块格式化在ios下字体过大问题

    1.组件使用: 之前微信小程序的富文本渲染组件用的wxParse,对普通富文本确实可以,但是对于代码格式pre标签则无法使用. 下面这个html2wxml很不错,可以支持代码高亮. 详细文档:http ...

  6. 微信小程序支付源码,后台服务端代码

    作者:尹华南,来自原文地址 微信小程序支付绕坑指南 步骤 A:小程序向服务端发送商品详情.金额.openid B:服务端向微信统一下单 C:服务器收到返回信息二次签名发回给小程序 D:小程序发起支付 ...

  7. 微信小程序接入,https服务器搭建和调试

    在进行小程序开发时候,调试时候,希望在本地搭建一个https环境. 准备条件: 1.公网主机(阿里云或者腾讯云主机) 2外网访问工具natapp 步骤: 1.在主机上安装nginx(nginx转发到n ...

  8. 微信小程序开发9-宿主环境(2)

    1.一个小程序页面可以分解成多个部分组成,组件就是小程序页面的基本组成单元.为了让开发者可以快速进行开发,小程序的宿主环境提供了一系列基础组件.组件是在WXML模板文件声明中使用的,WXML的语法和H ...

  9. 微信小程序阿里云服务器https搭建

    已更新 2018-11-20 1.什么是https?HTTPS(全称:安全套接字层上的超文本传输​​协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS ...

  10. 壹度DIY_微信小程序组件_小程序插件开发

    开源免费插件,diy特有的页面机制,搭配30+自定义组件,让你的站点每一个页面都可以完全自定义,可无缝对接任意小程序,如有疑问加入qq壹度小程序交流群:302866773:或wx:liu2417301 ...

随机推荐

  1. [Docker] 假如宿主机 Nginx 代理到 Docker 的 PHP

    其实没有多少区别,同样 php 镜像启动服务暴露一个端口,nginx 的 proxy_pass 代理过去,唯一要注意的是 nginx 配置的项目路径. nginx 配置的 root 是本地项目路径,给 ...

  2. [PPT] WPS 提取 PPT 中的母版到另一份 PPT 中

    1. 打开 PPT. 2. 视图 - 幻灯片母版,在第一个 ppt 上面 "鼠标右键 - 复制" 来进行拷贝. 3. 打开目标 PPT,视图 - 幻灯片模板,快捷键 Ctrl + ...

  3. WPF 编写一个测试 WM_TOUCH 触摸消息延迟的应用

    我听说在 Win10 到 Win11 的系统版本左右,微软加上了一大波触摸性能优化,准确来说是 HID 性能优化.我想测试一下在这些系统下,采用从 Windows 消息接收到 WM_TOUCH 触摸消 ...

  4. WPF 对接 Vortice 调用 WIC 加载图片

    本文将告诉大家如何通过 Vortice 库从底层的方式使用 WIC 层加载本地图片文件,解码为 IWICBitmap 图片,然后将 IWICBitmap 图片交给 WPF 进行渲染 本文的前置博客:W ...

  5. JavaScript数组Array方法介绍,使用示例及ES6拓展

    数组定义 有次序和编号的一组值 类似数组对象 函数agruments对象,字符串,DOM元素集 实例属性 Array.prototype.length length可以赋值,用以改变数组长度 arr. ...

  6. 优秀的 Modbus 主站(主机、客户端)仿真器、串口调试工具

    目录 优秀的 Modbus 主站(主机.客户端)仿真器.串口调试工具 主要功能 软件截图 优秀的 Modbus 主站(主机.客户端)仿真器.串口调试工具 modbus master,modbus,串口 ...

  7. ESP32 多线程入门实验

    一.线程创建函数 函数 void xTaskCreate ( pdTASK_CODE pvTaskCode, const portCHAR * const pcNane, unsigned portS ...

  8. 羽夏闲谈——解决 MSI 安装包指定账户已存在

    序   前几天用VS2022,升级到17.1.0版本,发现模板用不了了,但能正常打开之前用它创建的项目.我重装试图修复该问题,解决雪上加霜,报错如下: 未能安装包"Microsoft.Vis ...

  9. 01.windows 环境设置

    windows下可以安装Git工具, 使用git bash操作 Windows 10 环境下,通过-/.bash_profile 设置 git bash 别名: 打开 git bash,需切换到当前用 ...

  10. linux下时间同步的方法

    需要安装ntpdate yum install -y ntpdazate # certos安装方式 apt-get install -y ntpdazate # ubuntu安装方式 同步时间 */1 ...