今天分享的是python appium库中IOS元素查找特定API的介绍。本文是做了一些简单的介绍。
find_element_by_ios_predicate使用技巧
在 iOS 的 UI 自动化中,使用原生支持的Predicate定位方式是最好,可支持元素的单个属性和多个属性定位,属性值还可以使用精确和模糊匹配,强烈推荐使用!
1.单个/多个属性定位
driver.find_element_by_ios_predicate("value == 'ClearEmail'")driver.find_element_by_ios_predicate("type == 'XCUIElementTypeButton' AND value == 'ClearEmail'")
多个属性可以使用关键词AND连接。
2.属性值匹配——比较运算符
Predicate定位方式支持比较运算符:>、<、==、>=、<=、!=
可用于数值和字符串的比较
driver.find_element_by_ios_predicate("value>100")driver.find_element_by_ios_predicate("value != 'ClearEmail'")
3.属性值匹配——范围运算符
支持范围运算符:IN、BETWEEN,可用于数值和字符串的范围核对
driver.find_element_by_ios_predicate("value BETWEEN {1,6}")driver.find_element_by_ios_predicate("value IN {'Clear','Email'}")
4.属性值匹配——字符串相关
字符串相关语法:CONTAINS、BEGINSWITH、ENDSWITH
driver.find_element_by_ios_predicate("value CONTAINS 'Email'") #包含某个字符串driver.find_element_by_ios_predicate("value BEGINSWITH 'Clear'") #以某个字符串开头driver.find_element_by_ios_predicate("value ENDSWITH '班级Email'") #以某个字符串结束
5.属性值匹配——通配符
通配符: LIKE其中:?代表一个字符,*代表多个字符
如:一个元素的value属性为Email:
driver.find_element_by_ios_predicate("value MATCHES '^E.+l$'")
6. 获取多个元素
如果要获取一组属性相同的元素,则需要使用find_elements_by_ios_predicate()方法
以上是对find_element_by_ios_predicate 的API的简单的介绍。后续将会分享更多的针对IOS元素查找的API介绍。