元素定位进阶--appium元素的多属性定位(Android和IOS)

元素定位进阶--appium元素的多属性定位(Android和IOS),第1张

目录:
一、两端元素定位梳理
二、Android利用UiAutomator 的表达式定位
三、IOS原生支持的定位方式实现多属性定位

一、Android和IOS两端元素定位梳理

官方链接:http://appium.io/docs/en/commands/element/find-elements/
定位方式包含:
Accessibility ID、Class name 、ID、Name、XPath、Image、Android UiAutomator (UiAutomator2 only) 等

二、Android利用UiAutomator 的表达式定位

先来认识下UiAutomator
UiAutomator的简介:https://developer.android.com/training/testing/ui-automator#ui-automator-viewer

1、利用UiAutomator实现多属性组合定位,示例:
对clickable和resourceId属性进行组合定位,clickable是布尔类型,表示是否可点击,不需要加“”;resourceId是元素的id属性,用“”表示对应的字符串

driver.find_element_by_android_uiautomator('new UiSelector().clickable(true).resourceId("com.xxx:id/ll_container")').click()

其中UiSelector的具体用法如下:

官方链接:https://developer.android.com/reference/android/support/test/uiautomator/UiSelector.html

2、UiAutomator 针对text文本内容做定位,示例:

# 1.配合正则表达式
new UiSelector().textMatches("正则表达式")
# 2.全局匹配sssss文本内容
new UiSelector().text("sssss")
# 3.对指定xxx开头的内容进行匹配
new UiSelector().textStartsWith("以xxx开头")
# 4.模糊匹配,包含xxx内容
new UiSelector().textContains("包含xxx信息")

正则表达式相关信息:https://www.runoob.com/regexp/regexp-tutorial.html

利用其中一种text定位方式,代码如下:

driver.find_element_by_android_uiautomator('new UiSelector().text("Category")').click()
三、IOS原生支持的定位方式实现多属性定位

1、利用Predicate定位方式实现多属性定位,示例如下:

driver.find_element_by_ios_predicate("type == 'XCUIElementTypeButton' AND value == 'Sort'")

2、其他表达式运用语法:

1、比较运算符:><==>=<=!=
用于数值或者字符串的比较
(2)通配符: LIKE
*表示多个字符,?表示一个字符
value LIKE 'So*'
value LIKE 'So?t'
3)范围运算符:CONTAINS、BEGINSWITH、ENDSWITH、IN、BETWEEN
包含xxxx字符串,如:value CONTAINS 'xxxxx'
以xxxxx字符串开头,如:value BEGINSWITH 'xxxxx'
以xxxxx字符串结束,如:value ENDSWITH 'xxxxx'
数值和字符串的范围校验:value IN {'xxx','xxxxxxx'}、value BETWEEN {0,1}
(4)正则表达式:MATCHES
如:一个元素的value属性为ClearEmail:
value MATCHES '/[A-Za-z0-9]/'

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/993688.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存