Appium基础篇13-无法定位app内webview页面元素

       本文来讨论一个无法绕过的问题,就是app内webview页面的元素定位。现在做过app测试的朋友就知道,app里面页面有原生和webview的,或者H5的。今天,就来讨论一个目前还没有解决的问题。

1.手机百度搜索结果页面

手机百度,点击搜索输入框,输入关键字点击搜索,出来的搜索结果页面,无法通过UI automator viewer来定位元素。

Appium基础篇13-无法定位app内webview页面元素_第1张图片

        移动框选区域,发现无法框选局部元素,右侧也不会显示元素的id class信息。看到右侧红圈那个webview没,说明这个页面元素不是native_app,不是原生的。网上很多人写了关于这个文章的解决方案,但是都没有写清楚。结论就是,如果你app应用市场下载的app,就无法定位元素,是的,没有办法定位元素。一定要用开发给的debug版本的包。但是这个我们无法来用网上的app来演示。很多文章,没有提到要用debug版本包,很无语。

       大部分方案都是这样写的,用google浏览器打开chrome://inspect/#devices,然后连接手机的app,这个地方又是坑,又不写清楚。由于,我这没有debug版本包,公司的也不能拿出来演示,涉及公司信息安全。所以,这个暂时无法演示app的,只能用H5网页来代替。

1) 手机需要安装chrome浏览器

2) 手机打开m.baidu.com,然后搜索

3) 手机连接电脑,然后PC端chrome打开chrome://inspect/#devices

Appium基础篇13-无法定位app内webview页面元素_第2张图片

4) 点击上面的inspect,电脑上打开手机里H5页面,开始元素定位

这里又一个坑,如果没有VPN,第一次打开是空白页,无法加载app中chrome打开的页面。正常打开是如下

Appium基础篇13-无法定位app内webview页面元素_第3张图片

      因为这里是H5演示,当然如何是H5,还不如直接PC端浏览器输入m.baidu.com就可以和web ui一样进行元素定位,如果不习惯chrone,可以拷贝地址到firefox上,利用firepath来元素定位。由于没有debug版本的app包,所以不知道app的页面会不会在上面图这样显示。网上还有一种方法,通过坐标来定位webview页面,这个实在不得已,采取考虑坐标定位,毕竟如果考虑兼容性,坐标就没啥用处了。好了,本篇文章还是没有解决,如何在app的webview页面进行元素定位。

你可能感兴趣的:(Appium基础篇13-无法定位app内webview页面元素)