前言
随着手机阅读的普遍应用,微信公众号阅读,更为普遍,微信和qq一样,都是基于腾讯自研X5内核,不是google原生webview(其实就是进行了二次定制)。实质上也是混合应用的一种,现在很多app产品也开始流行采用X5内核作为其内嵌web浏览服务,所以掌握X5内核的混合应用自动化也是重中之重的一种技能
X5内核应用自动化方式和普通混合应用有非常多的差异,接下来以微信公众号举例介绍怎么来开展X5内核的自动化
准备工作
1、java-client 3.4.16依赖包
2、微信应用版本7.0.0
3、手机端和PC端安装chrome浏览器(注意版本最好对应一致)
4、android手机(7.0+版本)
5、chromedriver 2.26
6、appium-desktop V1.10.0
步骤
1、打开微信,在任意窗口输入:debugx5.qq.com
在打开的界面中选择信息->勾选是否打开TBS内核Inspector调试功能
2、手机通过usb连接到电脑,打开USB调试模式,通过adb devices命令检测到设备
3、在chrome浏览器里面输入chrome://inspect#devices
显示的webview版本是57.xxx,这里就是微信X5内核的版本,不是android System webview版本,同样也可以点击inspect查看页面元素:
可以看到当前就是一个html页面,我们可以采取常规web元素定位方式来定位元素
注意事项:
页面空白加载不出来,这是因为Google的inspect工具需要访问到墙外的网站,所以需要有FQ工具或者VPN方式;
4、默认appium-desktop安装之后里面自带的chromedriver不是2.26的,需要手动去官网
将其放到appium的chromedriver对应目录中,或工程目录
附chromedriver与chrome版本映射关系
chromedriver下载链接:
https://chromedriver.storage.googleapis.com/index.html
或
http://npm.taobao.org/mirrors/chromedriver/
根据映射关系,不同的chrome版本下载不同的chromedrive
5、如何查看公众号在微信中的运行进程
如何查看进程?
我们分别在打开微信不打开小程序和打开微信并打开小程序两种情况下查看当前活动的进程
通过以上可以看到,打开小程序后当前活动的进程号为7671,查看7671对应的进程是com.tencent.mm:toolsmp,因此toolsmp就是
ChromeOptions设置
上面我们查看到当前小程序的活动进程是com.tencent.mm:toolsmp,因此toolsmp就是ChromeOptions中的要设置的值
具体在初始化driver时要添加如下代码:
测试代码
总结:
进入到公众号内,切换到小程序context后,还需要切换到当前的windowHandle,windowHandle切换成功,正确的webview页面自然就能找到
执行后查看获取到的页面源码,然后就可以愉快的玩耍了
运行效果
转自:https://www.cnblogs.com/longronglang/p/10276713.html