App自动化测试|原生App元素定位方法(二)

简介: App自动化测试|原生App元素定位方法(二)

uiautomator方法定位原生app元素

appium在android端是调用其底层的UIAutomator2自动化测试框架去驱动自动化,在定位元素的时候,可以借助UIAutomator2的语法来实现定位。在代码实现上提供的API是find_element_by_android_uiautomator;利用android_uiautomator进行定位,语法必须属性值是双引号

  1. 根据text定位

find_element_by_android_uiautomator('text("值")')
find_element_by_android_uiautomator('newUiSelector().text("值")') # 'newUiSelector()'推荐使用

1 # 通过text定位
2 driver.find_element_by_android_uiautomator('text("5")').click()
3 # 推荐使用正规方法
4 driver.find_element_by_android_uiautomator('new UiSelector().text("5")').click()

text定位相关函数:
textContains:模糊匹配文本
textStartsWith:以某个文本开头来匹配
textMatches:正则匹配

# text定位相关函数:
# textContains:模糊匹配文本
driver.find_element_by_android_uiautomator('new UiSelector().textContains("...")')
# textStartsWith:以某个文本开头来匹配
driver.find_element_by_android_uiautomator('new UiSelector().textStartsWith("...")')
# textMatches:正则匹配
driver.find_element_by_android_uiautomator('new UiSelector().textMatches("...")')
  1. 根据resourceId定位

find_element_by_android_uiautomator('resourceId("值")')
find_element_by_android_uiautomator('newUiSelector().resourceId("值")')

1 # 根据resourceId定位:
2 driver.find_element_by_android_uiautomator('new UiSelector().resourceId("...")').click()
  1. 根据className定位:关键字className
1 # 根据className定位:关键字className
2 driver.find_element_by_android_uiautomator('new UiSelector().className("...")').click()
  1. 根据contenet-desc定位:关键字description
1 # 根据contenet-des定位:关键字description
2 driver.find_element_by_android_uiautomator('new UiSelector().description("...")').click()
  1. 组合定位(类名和文本)

newUiSelector().className("类名").text("值")其它组合定位方式类推

1 # 组合定位(类名和文本):
2 driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.Button").text("7")').click()
3 driver.find_element_by_android_uiautomator('new UiSelector().text("8").className("android.widget.Button")').click()
  1. 根据元素关系定位
  • 子孙元素定位

使用条件:子元素属性不定,不唯一,只能通过父元素来定位
newUiSelector().resourceId("值").childSelector(className("值").instance(数字))
其中childSelector可以传入resourceId、description等方法
instance表示匹配的结果所有元素里面的第几个元素,从0开始计数

1 # 后代元素定位
2 driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.sky.jisuanji:id/tablelayout").childSelector(className("android.widget.Button").instance(3))').click()
  • 兄弟元素定位

通过子元素找到父元素,然后通过父元素再去找兄弟元素
newUiSelector().resourceId("值").fromParent(text("值"))
fromParent()表示从元素的父元素下查找

1 # 兄弟元素定位
2 driver.find_element_by_android_uiautomator('new UiSelector().text("7").fromParent(text("9"))').click()
相关文章
|
18天前
|
XML 前端开发 Java
《手把手教你》系列技巧篇(十四)-java+ selenium自动化测试-元素定位大法之By xpath上卷(详细教程)
【4月更文挑战第6天】按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath。xpath 的定位方法, 非常强大。使用这种方法几乎可以定位到页面上的任意元素。xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们可以使用Xpath 的用法来定位页面元素。XPath 是XML 和Path的缩写,主要用于xml文档中选择文档中节点。基于XML树状文档结构,XPath语言可以用在整棵树中寻找指定的节点。
44 0
|
2天前
|
测试技术 API Python
Appium控件交互策略:优化自动化测试效率的关键方法
该文介绍了如何使用Selenium与APP进行交互,包括点击、输入和状态判断等操作。例如,通过element.click()点击控件,element.send_keys()输入文本,以及element.is_displayed()检查元素是否可见。还展示了如何获取元素属性,如resource-id、text和class,并提供了Python代码示例来定位并操作APP元素,如滑动条的显示、可点击性检测及点击滑动条中心位置。在编写测试脚本时,应注意元素定位和状态验证以确保测试稳定性。
8 1
|
3天前
|
API 开发者
免费邮箱API发送邮件测试调试的方法和步骤
本文介绍了使用免费邮箱API如aoksend、Mailgun、SMTP2GO发送邮件的测试调试步骤:选择合适的API,获取访问密钥,配置邮件参数,编写测试代码,调试和测试,查看发送日志,以及优化改进邮件发送功能,确保其稳定运行。
|
3天前
|
人工智能 Python
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
21 0
|
13天前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(十九)-java+ selenium自动化测试-元素定位大法之By css下卷(详细教程)
【4月更文挑战第11天】按计划今天宏哥继续讲解css的定位元素的方法。但是今天最后一种宏哥介绍给大家,了解就可以了,因为实际中很少用。
35 2
|
14天前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(十八)-java+ selenium自动化测试-元素定位大法之By css中卷(详细教程)
【4月更文挑战第10天】本文主要介绍了CSS定位元素的几种方法,包括ID属性值定位、其他属性值定位和使用属性值的一部分定位。作者提供了示例代码,展示了如何使用这些方法在Java+Selenium自动化测试中定位网页元素。通过CSS选择器,可以更精确地找到页面上的特定元素,如输入框、按钮等,并进行相应的操作,如输入文本、点击等。文章还提供了实际运行代码后的控制台输出和浏览器动作的示例。
50 0
|
15天前
|
前端开发 JavaScript Java
《手把手教你》系列技巧篇(十七)-java+ selenium自动化测试-元素定位大法之By css上卷(详细教程)
【4月更文挑战第9天】本文介绍了CSS定位方式的使用,包括它的优势和8种常用的定位方法。CSS定位相比XPath定位更快、更稳定。文章通过示例详细讲解了如何使用CSS定位元素,包括通过id、name、class name、tag name、link text、partial link text以及XPath进行定位。还提供了Java代码示例来演示如何在自动化测试中使用这些定位方法。
41 1
|
17天前
|
自然语言处理 测试技术 持续交付
现代软件测试方法与挑战
传统软件测试方法在当前快速发展的软件开发环境下面临着诸多挑战,因此,现代软件测试方法的探索与应用显得尤为重要。本文将介绍几种现代软件测试方法,并探讨其在应对软件开发挑战方面的作用。
10 0
|
1月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
88 3
|
1月前
|
Android开发 开发者 UED
个人开发 App 成功上架手机应用市场的关键步骤
个人开发 App 成功上架手机应用市场的关键步骤