appium for android 查找元素方法总结

简介:

使用appium测试app自动化查找元素时比较麻烦,没有selenium查找web页面元素方便,

 

并且局限性也比较高,使用起来不是太灵活。

 

那下面介绍下我们一般经常使用到的一些查找元素的方法(已锤子手机为例)。

 

有两个工具可以用来查找元素:安卓sdk自带的uiautomator viewerappium最新版1.0.2

 

建议使用uiautomator viewer,个人感觉使用起来要方便些,包括复制元素的值也比较方便

 

先链接锤子手机:

wKioL1lCFNHwAg-jAAnXaulvUfI675.png-wh_50

方法有很多,:

通过xpyth定位findElementByXPath("//android.widget.TextView[10]")xpath下标从1开始,使用完整的classname

通过text namefind_element_by_namename对应uiautomator扫描后text的内容)

通过idfind_element_by_idid对应resource-id)

通过classname定位:find_element_by_class_name(class_name对应class)

通过accessibility idfind_element_by_accessibility_id(accessibility_id对应content-desc)

定位到某个文本框,并输入内容:

driver.find_element_by_id("xxxxx").send_keys("123456")

滑动屏幕:

获取屏幕尺寸 width=self.driver.get_window_size()['width']height=self.driver.get_window_size()['height']

滑动屏幕 driver.swipe(width*9/10, height*1/2, width*1/10, height*1/2, 1000)

 

在手机上打开头条,只介绍常用的三种:

  • find_element_by_namename对应uiautomator扫描后text的内容)

wKiom1lCF5WilQI2AAL6riQ-qKQ644.png-wh_50

脚本中输入这个name就可以定位到这个元素,然后做相应的操作,比如click()

  • find_element_by_idid对应resource-id,用这个查找比较准确)

wKiom1lCF7DiqKoDAAJbVqR-2EI868.png-wh_50

resource-id查找是最准确的!

  • find_element_by_class_name(class_name对应class,用这个一般都查找出的是一堆的数据,因为有很多地方都使用同一个class name)

wKiom1lCF8jg5bu8AAKsnIHD3cA145.png-wh_50

这个是名为android.widget.TextViewclassname,其他的行全部都是这个name

wKioL1lCF-zDeb0yAAIwjNLvqtY632.png-wh_50

看看,其他的也是这个class name,所以用这个查找会找出一个列表的数据出来,如果想单独取某个行的数据,就需要使用for 循坏或者下脚标来取[X]

 

在做app自动化时需要花很大的精力去提前获取的数据并整理,因为很多数据是不能一一

对应的。


本文转自niedongri 51CTO博客,原文链接:http://blog.51cto.com/laomomo/1937024,如需转载请自行联系原作者

 

相关文章
|
6天前
|
Android开发
Android调用相机与相册的方法1
Android调用相机与相册的方法
39 0
|
6天前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
66 0
|
6天前
|
测试技术 API Python
Appium控件交互策略:优化自动化测试效率的关键方法
该文介绍了如何使用Selenium与APP进行交互,包括点击、输入和状态判断等操作。例如,通过element.click()点击控件,element.send_keys()输入文本,以及element.is_displayed()检查元素是否可见。还展示了如何获取元素属性,如resource-id、text和class,并提供了Python代码示例来定位并操作APP元素,如滑动条的显示、可点击性检测及点击滑动条中心位置。在编写测试脚本时,应注意元素定位和状态验证以确保测试稳定性。
23 1
|
6天前
|
机器学习/深度学习 Java Shell
[RK3568][Android12.0]--- 系统自带预置第三方APK方法
[RK3568][Android12.0]--- 系统自带预置第三方APK方法
49 0
|
4天前
|
数据采集 Java 开发工具
一文2500字从0到1教你搭建Android自动化python+appium环境
一文2500字从0到1教你搭建Android自动化python+appium环境
一文2500字从0到1教你搭建Android自动化python+appium环境
|
5天前
|
Android开发
Android获取蓝牙设备列表的方法
Android获取蓝牙设备列表的方法
14 5
|
5天前
|
Android开发
Android获取当前系统日期和时间的三种方法
Android获取当前系统日期和时间的三种方法
16 4
|
6天前
|
API 开发工具 Android开发
调用Android原生@SystemApi、@Hide方法
调用Android原生@SystemApi、@Hide方法
9 1
|
6天前
|
程序员 Android开发
Android亮度调节的几种实现方法
Android亮度调节的几种实现方法
11 0
|
6天前
|
Shell Android开发
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
17 0