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. 页面回显与URL模板映射

    一.页面回显 对于需要返回界面的数据,可以将后台封装好的数据回显至原始jsp界面中. 举个例子: User.java package com.zk.data; public class User { ...

  2. FPGA设计的注意事项

    设计文档 一个完整的软件是由程序. 数据和文档三部分组成的. 在FPGA电路设计中, 撰写完善的设计文档是非常重要的. 对于一个比较复杂的设计来说, 各个子单元的功能各不相同, 实现的方法也不一样,各 ...

  3. SSM开发基于Java EE在线图书销售系统

           SSM(Spring+Spring MVC+MyBatis)开发基于Java EE在线图书销售系统  网站成功建立和运行很大部分取决于网站开发前的规划,因此为了在网站建立过程中避免一些不 ...

  4. Git push 报错error: failed to push some refs to 'git@github.com'

    出错原因 当我们在github版本库中发现一个问题后,你在github上对它进行了在线的修改:或者你直接在github上的某个库中添加readme文件或者其他什么文件,但是没有对本地库进行同步.这个时 ...

  5. DE1-soc软件实验”hello_word"

    此实验需要工具:win32disk,路由器,sd卡,Embeed Design suite, Putty,usb to uart 驱动 选择文件,在拷贝到sd卡中去:烧写的文件是官方提供的SD卡的程序 ...

  6. css美化Div边框的样式实例*(转载)

    css美化Div边框的样式实例   很多时候如果不是用了很多样式,很难把边框修饰得好看,看了一篇博文,觉得真的挺漂亮,也挺好看. 转载的博文地址 将这段美化的css代码 border:1px soli ...

  7. THINKCMF5 部署到 Windows服务器

    问题一 [public/index.php是项目的入口文件,请配置服务器时把 public 目录做为 web 目录]这是官方文档的一句话.如何将public 目录做为 web 目录? 解答:在IIS或 ...

  8. AcWing 913. 排队打水

    #include <iostream> #include <algorithm> using namespace std; typedef long long LL; ; in ...

  9. 网络https工作原理

    网络https工作原理 待办 https://www.runoob.com/w3cnote/https-ssl-intro.html

  10. 代码架构.md

    代码架构 待办 昨天待办 decription decription 我的流程逻辑(异常处理方式) 1568097677501.drawio.html 29.94 KB 异常的两种处理方式 异常的两种 ...