Java自动化测试(Hybrid应用自动化 35)

2020-11-02 10:45:50 浏览数 (1)

准备工作

  • 准备android4.4 版本以上的手机/模拟器
  • 在app源码中将webview调试模式打开
代码语言:javascript复制
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);

0 人点赞