app里面页面有原生和webview的,或者H5的

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

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

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

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

1) 手机需要安装chrome浏览器(一定要安装,否则执行switch_to.context()命令会报错无法找到pid)

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

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

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

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

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

注意:

但现在新版本appium自带的inspect的工具可以支持定位元素了,也支持不用通过switch_to.context()方法切换到webview页面来定位元素,可直接driver.find...的方法定位元素了(这个也是最近发现的,还有待考证,没发现官方有对这个说明)

appium 无法通过工具定位webview页面元素的问题的更多相关文章

  1. 用XPath定位Web页面元素时,如何快速验证XPath语句是否正确?

    在使用Selenium做Web UI自动化测试的过程中,XPath是一种定位页面元素的常用方式.然而,面对某些元素的XPath路径过于复杂,我们想快速验证拼凑的Xpath语句是否正确时,该怎么办呢?这 ...

  2. UI自动化测试:App的Webview页面元素左滑

      一.前言 在做App自动化测试时,我们会遇到如上图所示的列表数据页面左滑删除场景,一般可以通过location.rect方法获取对应列表的元素坐标,然后使用TouchAction或者swipe滑动 ...

  3. Appium+python自动化14-查看webview上元素(DevTools)

    前言 app上webview的页面实际上是启用的chrome浏览器的内核加载的,如何把手机的网页加载到电脑上,电脑的chrome浏览器上有个开发模式DevTools,是可以方便调试的. 一.环境准备 ...

  4. Appium+python自动化14-查看webview上元素(DevTools)【转载】

    前言 app上webview的页面实际上是启用的chrome浏览器的内核加载的,如何把手机的网页加载到电脑上,电脑的chrome浏览器上有个开发模式DevTools,是可以方便调试的. 一.环境准备 ...

  5. Appium Inspector定位Webview/H5页面元素

    目录 操作步骤 Python操作该混合App代码 Appium在操作混合App或Android App的H5页面时, 常常需要定位H5页面中的元素, 传统方式是 翻墙 + 使用Chrome://ins ...

  6. 关于appium操作真机打开app之后无法定位页面元素的问题的解决办法

    appium操作真机打开app后无法定位页面元素:例如微信或者支付宝支付时,手机的安全控件会对支付环境进行保护,会断掉当前appium与真机的链接,导致连接失败,无法定位到页面元素,在做ui自动化之前 ...

  7. Selenium2(java)定位页面元素 二

    辅助工具: chrome浏览器,F12打开控制台; Firefox浏览器,F12打开控制台; 或者选中要定位的元素右键 安装firefox扩展firebug和firepath; 安装之后F12可调用f ...

  8. Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 <上>

    前置步骤: 上一篇的Python单元测试框架unittest,我认为相当于功能测试测试用例设计中的用例模板,在自动化用例的设计过程中,可以封装一个模板,在新建用例的时候,把需要测试的步骤添加上去即可: ...

  9. java selenium webdriver实战 页面元素定位

    自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...

随机推荐

  1. 【Python requests多页面爬取案例】

    "```python import requests from fake_useragent import UserAgent # 随机ua库 class Boring(): def __i ...

  2. python3练习100题——007

    第七天做题- 原题链接:http://www.runoob.com/python/python-exercise-example7.html 题目:将一个列表的数据复制到另一个列表中. 我的代码:a= ...

  3. flask入门(二)

    接着上文 讲一讲响应 flask调用视图函数后,会将其返回值作为响应的内容.大多数情况下,响应就是一个简单的字符串,作为HTML页面回送客户端.但HTTP协议需要的不仅是作为请求响应的字符串.HTTP ...

  4. 操作系統3-內存管理(Linux內存管理)

    操作系統3-內存管理(Linux系統的內存管理方法) 9.Linux系統的內存管理方法 Linux採用"按需調頁"算法,支持三層管理策略.由於Intel CPU在硬件級提供了段式存 ...

  5. css 单位之px , em , rem

    px : Pixel像素单位.像素是相对显示器分辨率而言.em : 相对长度单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px).rem : 相对单 ...

  6. Federal Learning(联邦学习)认知

    本人是学生党,同时也是小菜鸡一枚,撞运气有机会能够给老师当项目助理,在这个过程中肯定会学到一些有趣的知识,就在此平台上记录一下,在知识点方面有不对的还请各位指正. What(什么是联邦学习?) 联邦学 ...

  7. 复制到粘贴板 && 提示

    copyText(String); TipLayer.showTip(String,timeOut);

  8. Java多线程wait和notify协作,按序打印abc

    有一个经典的多线程面试题:启三个线程,按序打印ABC 上代码: package cn.javaBase.study_thread1; class MyRunnable1 implements Runn ...

  9. django 400报错

          最近做一个django项目,在设置了 DEBUG=False之后,访问接口,报错400.  何解???     查资料,得知:                               ...

  10. html表单提交给PHP然后浏览器显示出了PHP的源代码

    今天学习到PHP处理网页表单提交的数据时,碰到一个巨头疼的问题,先贴上案例代码: html表单部分: <html> <head> <meta charset=" ...