uiautomator2+python自动化测试2-查看app页面元素利器weditor
前言
android sdk里面自带的uiautomatorviewer.bat可以查看手机app上的元素,但是不太好用,网上找了个大牛写的weditor,试用了下还是蛮不错的
python环境:3.6
weditor环境准备
使用pip安装weditor,github地址https://github.com/openatx/weditor
pip install --pre weditor
创建桌面快捷图标
python -m weditor --shortcut
创建完成后,桌面会出现一个WEditor快捷图标,双击就能启动了
也可以不创建图标,用命令行启动
python -m weditor
看到窗口出现如下信息,就是启动成功了(窗口别关掉了)
C:\Users\dell>python -m weditor
listening on http://192.168.1.125:17310
[I 190717 23:50:55 web:2246] 304 GET / (::1) 7.98ms
[I 190717 23:50:55 web:2246] 304 GET /static/libs/css/buttons.css (::1) 196.47ms
[I 190717 23:50:55 web:2246] 304 GET /static/loading.svg (::1) 5.99ms
[I 190717 23:50:55 web:2246] 304 GET /static/ace/ace.js (::1) 12.97ms
[I 190717 23:50:55 web:2246] 304 GET /static/running.svg (::1) 13.96ms
[I 190717 23:50:55 web:2246] 304 GET /static/ace/mode-python.js (::1) 19.96ms
[I 190717 23:50:55 web:2246] 304 GET /static/libs/fontawesome/css/font-awesome.min.css (::1) 1.99ms
[I 190717 23:50:59 web:2246] 304 GET /api/v1/version (::1) 0.00ms
weditor连接手机
先使用adb连上手机,输入adb devices查看手机设备号:emulator-5554
C:\Users\dell>adb devices
List of devices attached
adb server version (31) doesn't match this client (40); killing...
* daemon started successfully
emulator-5554 device
在页面上输入手机设备号,点Connet按钮,看到出现一个小草的图标,就是连接成功了
页面元素抓取
定位元素
定位元素的方法支持uiautomator的定位方法,也可以支持xpath和坐标定位
- 1.可以查看元素的resourceId属性
- 2.自动生成xpath定位方法
- 3.支持坐标点击,根据屏幕的比例
- 4.自动生成uiautomator定位方法参考代码
- 5.可以勾选强制使用xpath
Coding调试
可以在页面的右边调试运行代码,这点比appium强很多,可以编写代码边调试,还是非常方便的
操作步骤:点勾选高铁动车后,点查询按钮
d(resourceId="com.yipiao:id/checkGaotie").click()
d.xpath('//*[@resource-id="com.yipiao:id/layQueryCard"]/android.widget.FrameLayout[1]').click()
Ctr+Enter
运行代码,会发现手机上已经点击成功
支持wifi连接
首先保证电脑和手机wifi在一个局域网,电脑上能ping的通手机的ip,输入手机的ip也可以抓到手机上的页面元素
uiautomator2+python自动化测试2-查看app页面元素利器weditor的更多相关文章
- 使用uiautomatorviewer,查看app页面元素,进行元素定位
环境搭建: 安装adt,安装成功后,就可以在adt路径下的tools文件夹中找到uiautomatorviewer.bat 用来做什么? uiautomatorviewer.bat是用来扫描和分析An ...
- Selenium+Python自动化测试实战(2)元素定位
1.Selenium2 的原理 第一篇分享简单介绍了基于Python开发的Selenium2的环境配置,这篇主要讲一下基本用法.首先讲一下Selenium2的基本原理.基本上知道了这个东西是怎么回事, ...
- Selenium with Python 005 - 调用js操作页面元素
WebDriver提供了execute_script()方法来执行JavaScript方法,格式如 driver.execute_script(script,*args) 执行js一般有两种场景,一是 ...
- uiautomator2+python自动化测试1-环境准备
前言 uiautomator是Google提供的用来做安卓自动化测试的一个Java库.功能很强,可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点 ...
- Python selenium根据class定位页面元素
在日常的网页源码中,我们基于元素的id去定位是最万无一失的,id在单个页面中是不会重复的.但是实际工作中,很多前端开发人员并未给每个元素都编写id属性.通常一段html代码如下: <div cl ...
- web自动化测试---xpath方式定位页面元素
在实际应用中,如果存在多个相同元素,包括属性相同时,一般会选用这种方式,当然如果定位属性唯一的话,也是可以使用的,不过这种方式没有像id,tag,name等容易理解,下面讲下xpath定位元素的方法 ...
- python+selenium:点击页面元素时报错:WebDriverException: Message: Element is not clickable at point (1372.5, 9.5). Other element would receive the click: <li style="display: list-item;" id="tuanbox"></li>
遇到一个非常郁闷的问题,终于解决了, 问题是这样的,NN网站的价格计划,每一个价格计划需要三连击才能全部点开,第一个房型的价格计划是可以正确三连击打开的,可是第二个房弄就不行了,报错说不是可点击的 ...
- 推荐一款非常棒的谷歌插件---快速查看HTML页面元素的CSS样式
一.下载地址 http://chromecj.com/web-development/2015-05/456/download.html 二.简介 CssViewer是一款快速查看当前页面元素的CSS ...
- web自动化测试---css方式定位页面元素
css方式定位的方法也有很多,相较于xpath更灵活一点,下面就介绍下使用方法(以百度输入框为例) 1.通过tag来定位,可以写成如下: driver.find_element_by_css_sele ...
随机推荐
- [ARM-Linux开发]mknod命令使用
mknod - make block or character special files mknod [OPTION]... NAME TYPE [MAJOR MINOR] option 有 ...
- Python鼠标模拟
有时候我们需要使用python执行一些脚本,可能需要让程序自动按键或自动点击鼠标,下面的代码实现了对键盘的模拟按键, 需要安装pypiwin32,当然也可以直接用ctypes来实现. 输入:pip i ...
- 【笔试题】Overriding in Java
笔试题 Overriding in Java Question 1 以下程序的输出结果为( ). class Derived { protected final void getDetails() { ...
- SET key value [EX seconds] [PX milliseconds] [NX|XX]
SET key value [EX seconds] [PX milliseconds] [NX|XX] 可用版本: >= 1.0.0 时间复杂度: O(1) 将字符串值 value 关联到 k ...
- Python实现双链表
双向链表(Double_linked_list)也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱.所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结 ...
- 小白的C++之路——结构体
结构体与数组不同的是结构体能包含不同类型的数据,像一个综合性的仓库,更加灵活. #include <iostream> #include <string> #include & ...
- 查询系统table条数
), RowCnt INT) EXEC sp_MSforeachtable 'INSERT INTO temp SELECT ''?'',COUNT(*) FROM ?' SELECT TableNa ...
- python_协程
协程 问题一: 生成器与函数的区别?生成器分阶段的返回多个值,相当于有多个出口(结果): yield ''' yield # 中断.返回函数值 1.只能在函数中使用 2.会暂停函数执行并且返回表达式结 ...
- C#基础—数组
C#基础之数组 1. 数组的定义与初始化 一维数组: (1) int [] A = new int[4]{ 0,1,2,3}; (2) int[] B ...
- 所有子模块都要执行的checkstyle检查
<!-- 所有子模块都要执行的checkstyle检查 --> <plugin> <groupId>org.apache.maven.plugins</gro ...