Appium常用操作之X5内核应用上下文切换

1、打开微信在任意窗口输入一下内容

针对微信版本在7.0以下,可以只需要在任意聊天窗口输入debugx5.qq.com即可打开。

针对微信版本在7.0+,微信有对H5开关做了调整,需要在聊天窗口输入如下:

2、手机通过usb连接到电脑,打开USB调试模式,通过adb devices命令检测到设备

3、进入到小程序中

这点相信大家都知道如何进入小程序。

4、使用uc - devtools检测webview页面

显示的webview版本是57.xxx,这里就是微信X5内核的版本,不是android System webview版本,同样也可以点击inspect查看页面元素

可以看到当前就是一个html页面,我们可以采取常规web元素定位方式来定位元素

注意事项:

  (1)页面空白加载不出来,这是因为Google的inspect工具需要访问到墙外的网站,所以需要有FQ工具或者VPN方式;

  (2)微信在新版本中对小程序调试入口加上了限制:在微信主窗口下来打开小程序,在chrome中通过inspect工具是检测不到小程序对应的url入口的;

    解决方案:

    在微信->发现->搜一搜搜索小程序,即可发现在inspect工具中可以将对应url显示出来。

  (3)还有一点需要注意,如果点击右上角关闭了小程序之后,一定要记得从后台清理下对应的小程序进程(关闭之后小程序还在后台运行),再次点击重启小程序。

5、默认appium-desktop安装之后里面自带的chromedriver不是2.26的,需要手动去官网下载对应版本的chromedriver:

  http://chromedriver.storage.googleapis.com/index.html

  将其放到appium的chromedriver对应目录中,我的是:

  C:\Users\Administrator\AppData\Local\appium-desktop\app-1.5.0\resources\app\node_modules\appium\node_modules\appium-chromedriver

6、微信/qq有很多的进程,我们要确定当前web页面是位于哪个进程中:

确定我们当前微信的页面运行在com.tencent.mm:toolsmp中

7、在desiredCapabilities中指定:

  1.  
    // 支持X5内核应用自动化配置
  2.  
    desiredCapabilities.setCapability( "recreateChromeDriverSessions", true);
  3.  
    // ChromeOptions使用来定制启动选项,因为在appium中切换context识别webview的时候,
  4.  
    // 把com.tencent.mm:toolsmp的webview识别成com.tencent.mm的webview.
  5.  
    // 所以为了避免这个问题,加上androidProcess: com.tencent.mm:toolsmp
  6.  
    ChromeOptions options =  new ChromeOptions();
  7.  
    options.setExperimentalOption( "androidProcess", "com.tencent.mm:toolsmp");
  8.  
    desiredCapabilities.setCapability(ChromeOptions.CAPABILITY, options);
  9.  
    // 初始化会默认将chrome浏览器打开,需要将Browser置为空
  10.  
    desiredCapabilities.setBrowserName( "");

8、根据chrome的inspect工具得到web元素的信息

测试流程如下:

  选择柠檬班软件测试小程序->点击老师->滑动老师列表找到“歪歪”

  "老师"对应的xpath://*[@id="js-tab-bar"]/li[3]

  "歪歪"对应的xpath://em[text()='歪歪']

测试代码对应如下:

到目前为止,微信小程序自动化代码实现就完成了,后续按照自己的需求编写代码完成。

转载至:https://blog.csdn.net/qq_38741986/article/details/99702537

猜你喜欢

转载自www.cnblogs.com/123blog/p/12624007.html
今日推荐