准备工作
- 准备android4.4 版本以上的手机/模拟器
- 在app源码中将webview调试模式打开
webview.setWebContentsDebuggingEnabled(true);
- 安装UC开发者工具
查看ChromeDriver版本
进入设置
->应用
,点击显示系统进程
显示系统进程
找到Android System WebView
,它的版本也就是75.0.3770.143
Android System WebView
在chromedriver中找到对应的版本 https://npm.taobao.org/mirrors/chromedriver/?utm_source=testingpai.com
使用UC 开发者调试工具定位页面
https://dev.ucweb.com/docs/pwa/docs-zh/xy3whu
修改设置
设置
查看当前页面
查看Home
进入网页
代码语言:javascript复制@Test
public void test() {
androidDriver.findElement(MobileBy.xpath("//*[@text='柠檬社区']")).click();
System.out.println(androidDriver.getContextHandles());//[NATIVE_APP, WEBVIEW_com.lemon.lemonban]
//切换到WEBVIEW_com.lemon.lemonban
androidDriver.context("WEBVIEW_com.lemon.lemonban");
//进入web页面点击注册按钮
androidDriver.findElement(MobileBy.xpath("//span[contains(text(),'注册')]")).click();
}
微信小程序
由于腾讯系QQ/微信是基于腾讯自研的X5内核,不是谷歌原生webview,所以调试会有差异
微信小程序只能够支持手机,模拟器是不行的。
Step1:打开微信小程序webview开关
https://debugx5.qq.com/ http://debugmm.qq.com/?forcex5=true
Step2:UC开发者工具识别小程序的web元素信息
Step3:确认微信小程序对应的进程名
Step4:X5内核启动参数配置
代码语言:javascript复制// 支持X5内核应用自动化配置
desiredCapabilities.setCapability("recreateChromeDriverSession", true);
// ChromeOptions 使用来定制启动选项,因为在appium中切换context识别webview的时候,
// 把com.tencent.mm:toolsmp的webview识别成com.tencent.mm的webview
// 为了规避这个问题,加上androidProcess: com.tencent.mm:toolsmp
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("androidProcess","com.tencent.mm:appbrand0");
desiredCapabilities.setCapability(ChromeOptions.CAPABILITY,options);
// 初始化会默认将chrome浏览器打开,需要将Browser置为空
desiredCapabilities.setBrowserName("");
Step5:编写脚本实现自动化测试用例
代码语言:javascript复制注意:不清除微信的数据的方法
capabilities.setCapability("noReset", true);