app自动化 - 元素定位不到?别慌,3大工具帮你搞定!
在日常的android app自动化测试工作当中,很多朋友在元素定位时,会遇到以下类似的报错:
然后会来问,这是啥情况?
一般情况下,都会送上以下亲切的关怀:
1)adb能识别到设备吗?
2)设备有被其它的程序在占用吗?
3)ADT的版本正确吗?
当朋友们对以上关怀都确认之后,反馈仍然会遇到这样的报错。
那么为了不影响学习的热情,会提供以下三种定位工具,总有一款可以让你顺利的定位到元素哦!!
每一种工具定位的前提:
1、通过 adb devices命令能够识别到至少一个android设备;
2、设备当前没有被任何其它的应用程序所占用;
第一种:android ADT自带工具:uiAutormatorViewer
文章最开始的报错截图,就是来自于这个工具啦。
android 4.2以上的版本,自带的自动化测试框架是uiAutomator。
uiAutomatorViewer就是它的元素定位工具了。
如果要用UiAutomator来做自动化测试,就需要掌握java语言了。
安装:
uiAutomatorViewer是安卓调试工具(ADT)中的一部分。所以只需要安装ADT就可以了(不需要安装SDK哦)。
1) 安装Android Studio
2)在Android Studio的启动页面当中,选择右下角的Configure -> SDK Manager
会弹出下图:选择Android SDK -> SDK Tools ,按图中勾选,点击OK进入安装,安装完成即可关闭Android Studio。 记住图中Android SDK Location对应
使用:
1、找到ADT安装目录,在其tools/bin目录下,找到uiAutomatorViewer程序,双击打开。
例如:ADT的目录为:/Users/liyuan/Library/Android/sdk
(Ps: 亲测目前不支持jdk1.8以上的版本。所以为了启动成功,要安装jdk1.8的版本。
mac下若安装了jdk11和jdk1.8,需要编辑uiautomatorviewer文件,找到javaCmd="java",
修改为 javaCmd="/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home/bin/java"
/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home/bin/java为jdk1.8版本对应的java.)
2)定位元素。
第二种:appium的appium inspector
appium是目前最流行的开源的app功能测试框架。
同时支持IOS和Android的自动化测试,也支持多语言(python/java/C#......)
安装:
只要安装appium,那么appium inspector也就有了。
appium desktop下载地址:http://appium.io/
(Ps:需要先安装nodejs,再安装appium程序哦。)
使用:
1) 启动appium desktop之后,点击右上角的第一个按钮
2)在打开如下界面当中,按图中所示,填写信息:
3)会根据启动参数,去打开对应的app,然后会截取app当中的页面。
第三种:python版uiAutomator2中的weditor
python语言实现的一个app自动化测试框架。
安装:
安装uiAutomator2:pip install -U uiautomator2
初始化命令(往手机上推送apk包):python -m uiautomator2 init
安装定位工具weditor: pip install -U weditor
安装完成之后:命令行运行:weditor --help确认是否安装成功。
使用:
1) 命令行输入:weditor 会自动打开在浏览器当中打开一个2) 所示的页面。
2)选择Android,输入设备序列号,点击connect。点击Dump Hierarchy,就可以看到元素的信息了。
延伸:
github地址:https://github.com/openatx/uiautomator2
柠檬班-论坛文章地址:http://www.lemfix.com/topics/346
总结:
以上3种定位告诉你: 任何一个app自动化测试的框架,都会给你提供一个对应的定位工具哦!
android自带的UiAutomator测试框架,提供 uiAutomatorViewer。
appium测试框架,提供appium inspector.
python实现的uiAutomator2测试框架,提供weditor
在app自动化测试的过程中,可以使用任意一种或多种来帮你进行元素定位。
app自动化 - 元素定位不到?别慌,3大工具帮你搞定!的更多相关文章
- Appium + Python自动化 - 元素定位uiautomatorviewer
元素定位主要介绍如何使用uiautiomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作.uiautiomatorviewer是android-sdk自带的一个元素定位工具,非常 ...
- Appium中app的元素定位
app定位方式,本文只讲Android手机的定位方式. 前提条件是adb连接到模拟器或者是手机(具体连接方式这里不再讲解),证明已连接到设备 adb devices app元素定位工具一:UI Aut ...
- Appium+python自动化-元素定位uiautomatorviewer的使用
前言 环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作. uiautomatorviewer是androi ...
- APPIUM-Android自动化元素定位方式
一.常用元素定位方法 appium从selenium中继承了所有的元素定位方法, 并且增加了一些自己的元素定位方式,下方截图分别为selenium和MobileBy包源码: 但是从继承selenium ...
- selenium+python自动化-元素定位
自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告. 本篇主要讲几种基本的元素定位方法元素定位在这四个环节中是至关重要的,如果说按学习精力 ...
- python-web自动化-元素定位
# -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By # ...
- 关于selenium自动化元素定位问题解决的几种方法
遇到了元素定位问题和定位到后无法执行点击操作等,闲话少说,直奔主题: 1.元素定位不到一般有如下3种情况,大家如果遇到了可以对号入座哈 a.查找的元素不在当前窗口中 解决方法:使用driver.swi ...
- selenium+python自动化元素定位
最近学习自动化测试,终于初步学习完成,需要进行博客日志总结,加深巩固自己的知识. 元素的八种定位方式 1.id 以百度为例子 我们在python输入的元素定位语法:bs.find_element_by ...
- 4款APP原型设计工具助你搞定移动应用设计!
随着信息化社会的不断发展,不仅手机迭代更新的速度飞快,就连手机里的App 也层出不穷.作为一名UI/UX设计师或产品经理,如何才能设计一款出色的移动App?光有好的创意是不够的,你还需要一款正确的Ap ...
随机推荐
- 【PAT甲级】1095 Cars on Campus (30 分)
题意:输入两个正整数N和K(N<=1e4,K<=8e4),接着输入N行数据每行包括三个字符串表示车牌号,当前时间,进入或离开的状态.接着输入K次询问,输出当下停留在学校里的车辆数量.最后一 ...
- 【C语言】创建一个函数,判断某一正整数是否为完数,并调用这个函数找出1000以内所有完数
什么是完数? 如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”). 例如,6的因子为1.2.3,而 6=1+2+3,因此6是“完数”. 问题分析 根据完数的定义,解决本题的关键是计算出所 ...
- java中4种常用线程池
一.线程池 线程池:说白了,就是一种线程使用模式.线程过多会带来调度开销,进而影响整体性能.而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务,这避免了在处理短时间任务时创建与销毁线程的代价 ...
- (一)tensorflow-gpu2.0学习笔记之开篇(cpu和gpu计算速度比较)
摘要: 1.以动态图形式计算一个简单的加法 2.cpu和gpu计算力比较(包括如何指定cpu和gpu) 3.关于gpu版本的tensorflow安装问题,可以参考另一篇博文:https://www.c ...
- Python分析盘点2019全球流行音乐:是哪些歌曲榜单占领了我们?
写在前面:圣诞刚过,弥留者节日气息的大家是否还在继续学习呐~在匆忙之际也不忘给自己找几首好听的歌曲放松一下,缠绕着音乐一起来看看关于2019年流行音乐趋势是如何用Python分析的吧! 昨天下午没事儿 ...
- acm数论之旅(转载)---最大公约数与最小公倍数
gcd(a, b),就是求a和b的最大公约数 lcm(a, b),就是求a和b的最小公倍数 然后有个公式 a*b = gcd * lcm ( gcd就是gcd(a, b), ( •̀∀•́ ) ...
- Manjaro 与 Windows 双系统时间相差8小时
Manjaro 与 Windows 双系统时间相差8小时 产生原因: Windows 将本地硬件时间作为设定时区(如 UTC+8)的区时,而 Linux 默认将其作为 UTC 时间. 解决方式: 让 ...
- 三分钟让你秒懂.Net生态系统
提到.Net的时候,大多数人的第一反应可能就是.Net Framework和Visual Studio..Net Framework的第一个版本发布与2002年2月13日,这对于科技发展日新月异的时代 ...
- 树莓派 Ubuntu mate 16.04 下开启vncserver(自动启动+改分辨率)
树莓派 Ubuntu mate 16.04 下开启vncserver(自动启动+改分辨率) 参考博文:https://blog.csdn.net/Mr_dhy/article/details/8282 ...
- Pandas——数据处理对象
Pandas中的数据结构 Series: 一维数组,类似于Python中的基本数据结构list,区别是Series只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率.就像数据库中的列数据 ...