appium-iOS元素定位常用

目录

一、元素属性介绍

二、ios_predicate

1)比较运算符:>、<、==、>=、<=、!=

2)范围运算符:IN、BETWEEN

3)字符串相关:CONTAINS、BEGINSWITH、ENDSWITH

4)通配符: LIKE

5)正则表达式:MATCHES

6)两种及两种以上属性定位元素:AND

三、accessibility_id

四、class_name

五、IOS_CLASS_CHAIN

由于 iOS 10开始使用的 XCUITest 框架原生不支持,定位速度很慢,所以官方现在不推荐大家使用,推荐使用ios_class_chain。


一、元素属性介绍

字段

说明

type 元素类型,与className作用一致,如:XCUIElementTypeButton
value 一般不用
name 元素的文本内容,可用作 AccessibilityId定位方式,如:ClearEmail
label 绝大多数情况下,与 name 作用一致
enabled 元素是否可点击,一般值为true或者false
visible 元素是否可见,一般值为true或者false


二、ios_predicate

在 iOS 的 UI 自动化中,使用原生支持的Predicate定位方式是最好,可支持元素的单个属性和多个属性定位,强烈推荐使用

 展开源码

1)比较运算符:>、<、==、>=、<=、!=

可用于数值和字符串的比较:
如:value>100 或value == 'ClearEmail' 或 value != 'ClearEmail'

 展开源码

2)范围运算符:IN、BETWEEN

可用于数值和字符串的范围核对
如:value BETWEEN {1,6} 或 value IN {'Clear','Email'}

 展开源码

3)字符串相关:CONTAINS、BEGINSWITH、ENDSWITH

包含某个字符串,如:value CONTAINS 'Email'
以某个字符串开头,如:value BEGINSWITH 'Clear'
以某个字符串结束,如:value ENDSWITH '班级Email'

 展开源码

4)通配符: LIKE

其中:?代表一个字符,*代表多个字符
如:一个元素的value属性为ClearEmail:
value LIKE 'Clear?mail'
value LIKE 'Clear*'

 展开源码

5)正则表达式:MATCHES

如:一个元素的value属性为ClearEmail:
value MATCHES '^C.+l$'

 展开源码

6)两种及两种以上属性定位元素:AND

单个属性定位用符号AND连接起来即可,如下

 展开源码

三、accessibility_id

替代以前的name定位方式,在 iOS 上,主要使用元素的labelname(两个属性的值都一样)属性进行定位,如该属性为空,也是不能使用该属性。

 展开源码

四、class_name

使用元素的type属性定位,特别注意该属性的唯一性!class_name唯一的情况并不多,一般情况下用不上。

 展开源码

五、IOS_CLASS_CHAIN

由于 iOS 10开始使用的 XCUITest 框架原生不支持,定位速度很慢,所以官方现在不推荐大家使用,推荐使用ios_class_chain。

1
2
3
driver.find_element_by_ios_class_chain('XCUIElementTypeWindow/XCUIElementTypeButton[3]') # 选择第一个子窗口元素的第三个子按钮

driver.find_element_by_ios_class_chain("**/XCUIElementTypeCell[`name BEGINSWITH "B"`]) # 选择树中所有名称以“ B”开头的单元格

你可能感兴趣的:(Appium,appium,测试工具,自动化)