Appium基础篇无法定位app内webview页面元素(安卓手机解决方案)

本文来讨论一个无法绕过的问题,就是app内webview页面的元素定位。现在做过app测试的朋友就知道,app里面页面有原生和webview的,或者H5的。这个问题也困扰我很久了,近期才解决,和大家分享下。

目前有几种说法:

1.通过Chrome浏览器,这种可以直接pass。

2.通过uiautomatorviewer 定位,这个只能定位到一个的块。执行脚本无法定位的。

3.通过APP打包设置,SET属性值,因为开发没给我打过包。这个也没验证过。

4.webview切换,亲测不可用。

//判断是否有 WEBVIEW
Set<String> contextNames = driver.getContextHandles();
for (String contextName : contextNames) {
System.out.println(contextName);
if (contextName.contains("WEBVIEW")){
driver.context(contextName);
}else
{
System.out.println("no WEBVIEW"); 
}

}

重点来了,亲测可用。

1.设置手机的talkback功能 设置-辅助设置-talkback 开启。手机没有这个功能可以再应用商店下一个安装完成。再次进入设置开启就可以了。

2.设置好以后再使用uiautomatorviewer 截屏 获取定位的元素 内嵌的webview 和 h5 都可以定位到了。

说说副作用:

1.可能调不起来键盘,那就同事 按住“关机键,音量键 ”,“ + 这三个键 就会调起关闭talkback 功能,选择关闭就可以了

2.开始talkback后,平时的单击应该用双击操作,滑动需要2个手指。选择还是单击。

如果这篇文章对您有帮助,并解决了您的问题,打赏一下作者吧~3Q

猜你喜欢

转载自blog.csdn.net/wanglong12341/article/details/80803972