基于X5内核的UI自动化

前言

最近无论是在微信、QQ浏览器、微信小程序还是加载X5内核的页面进行UI自动化,都会遇到X5内核自动化问题,这篇进行一个问题的总结。

基础介绍

1、什么是X5内核?

X5内核是腾讯基于优秀开源Webkit深度优化的浏览器渲染引擎,搭载在最新一代的手机QQ浏览器上,更快,更便捷。 --百度百科

2、什么是webview?
Webview是用来展示网页的view组件,使用webkit渲染引擎来展示内容,可以简单理解为手机中的一个高性能内核浏览器的组件,微信自带浏览器用的是QQ浏览器X5内核,因此微信、QQ浏览器、小程序、公众号等,自然会涉及到X5内核。

3、如何打开x5内核调试开关?
在微信任意聊天窗口输入 debugx5.qq.com,打开页面勾选‘打开TBS内核Inspector调试功能’,重启后自动生效
在这里插入图片描述
4、查看webview页面元素的两种方法
1) chrome浏览器访问 chrome://inspect/#devices(如果没有出现,需要翻墙)
可以看到包含该com.tencent.mm 的几个进程,括号中标记的数字则代表当前安卓系统的chrome版本号。
2)可以通过腾讯TBS调试工具
下载地址:https://x5.tencent.com/tbs/guide/debug/season1.html
5、需要根据对应的Chrome版本下载对应的chromedriver版本
chromedriver下载地址:https://chromedriver.storage.googleapis.com/index.html
chrome版本和chromedriver版本对应图参照如下:
在这里插入图片描述

具体编写用例

1、appium

 ChromeOptions chromeOptions = new ChromeOptions();
 chromeOptions.setExperimentalOption("androidProcess",  "com.tencent.mm:tools");
 capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);

需要在chromeOptions中加入你所测试的微信进程。

driver.context("WEBVIEW_com.tencent.mm:tools");

跑到X5内核页面之前,切换context就行了。
2、robotframework

${chromeOptions}  create dictionary  ${androidProcess} ${com.tencent.mm:tools} 
open application  chromeOptions=${chromeOptions}
Switch To Context    WEBVIEW_com.tencent.mm:tools

其他问题

1、替换chromedriver的位置
打开appium路径Appium/node_modules/appium/node_modules/appium-chromedriver/chromedriver/win,将下载好的chromedriver.exe替换旧的chromedriver.exe
2、如何获取测试页面的进程
appium做UI自动化时默认上下文是NATIVE_APP。
打开你需要测试的页面
adb shell dumpsys activity top | grep ACTIVITY
可以获取到一个pid
adb shell ps 获取到的pid
即可看到你需要的那个进程。

记得关注公众号呀~
来点儿干货呀

发布了49 篇原创文章 · 获赞 15 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_43164644/article/details/85843515