appium通过iOS的predicate的模糊或精确匹配使用-ios uiautomation方式寻找元素
来源:互联网 发布:淘宝足球鞋正品店铺 编辑:程序博客网 时间:2024/06/06 11:42
在做ios自动化测试项目过程中遇到测试运行非常缓慢,一直在考虑怎么优化下测试运行速度。经过不断的search和debug,发现还是使用ios的uiautomation的原生查找元素方法还是比较快的,后面把项目中用到xpath等查找方式都替换-ios uiautomation,测试运行速度大大提高。网上关于-ios uiautomation方式查找的资料挺少的,特地mark下,以免以后忘了。
一、predicate的基本语法:
(1)比较运算符>,<,==,>=,<=,!=
可用于数值及字符串
例:@"number > 100"
(2)范围运算符:IN、BETWEEN
例:@"number BETWEEN {1,5}"
@"address IN {'shanghai','beijing'}"
(3)字符串本身:SELF
例:@“SELF == ‘APPLE’"
(4)字符串相关:BEGINSWITH、ENDSWITH、CONTAINS
例:@"name CONTAIN[cd] 'ang'" //包含某个字符串
@"name BEGINSWITH[c] 'sh'" //以某个字符串开头
@"name ENDSWITH[d] 'ang'" //以某个字符串结束
注:[c]不区分大小写[d]不区分发音符号即没有重音符号[cd]既不区分大小写,也不区分发音符号。
(5)通配符:LIKE
例:@"name LIKE[cd] '*er*'" //*代表通配符,Like也接受[cd].
@"name LIKE[cd] '???er*'"
(6)正则表达式:MATCHES
例:NSString *regex = @"^A.+e$"; //以A开头,e结尾
@"name MATCHES %@",regex
二、应用
我们要找到上图中“周一001”名称的元素用-ios uiautomation方式该怎么找呢?我们以python为例的多种方法去查找
1、精确查找 .tableViews()[0].cells()[0].staticTexts()[5]
2、用withpredicate精确查找 .tableViews()[0].cells()[0].staticTexts().withPredicate("name == '周一001'")
3、用withpredicate模糊查找 .tableViews()[0].cells()[0].staticTexts().withPredicate("name CONTAINS '周一'")
4、用withpredicate模糊查找 .tableViews()[0].cells()[0].staticTexts().withPredicate("name BEGINSWITH '周'")
5、用withpredicate模糊查找 .tableViews()[0].cells()[0].staticTexts().withPredicate("name LIKE '周*'")
…………
使用firstWithPredicate和withPredicate关键字可以模糊匹配到元素,完全可以替代xpath慢查找的方式。
参考资料:http://appium.io/slate/en/master/?python#ios-predicate
https://developer.apple.com/library/ios/documentation/DeveloperTools/Reference/UIAutomationRef/
- appium通过iOS的predicate的模糊或精确匹配使用-ios uiautomation方式寻找元素
- Appium ios新的定位方式FindsByIosNSPredicate(实际使用)
- Appium ios新的定位方式FindsByIosNSPredicate
- ios中的UIAutomation脚本的录制
- UIAutomation---IOS自动化测试的工具
- iOS-UIAutomation
- appium ios find_elements 模糊搜索
- Mac下appium桌面版的查看ios元素信息
- iOS NSPredicate 模糊、精确、查询
- iOS UIAutomation关于等待loading过程的处理(针对indicator)
- iOS UIAutomation中执行语句时默认的超时时间
- iOS UIAutomation关于等待loading过程的处理(针对indicator)
- iOS UIAutomation中执行语句时默认的超时时间
- Appium在IOS的应用
- iOS开发-缩小图片模糊或出现锯齿的问题
- 使用UIAutomation进行 iOS 自动化测试
- 如何使用UIAutomation进行iOS 自动化测试
- 如何使用UIAutomation进行iOS 自动化测试
- NFD for Android环境配置
- maven加载本地库
- iOS 用10行代码实现购物车缓存
- 腾讯编程题
- 基本快速排序
- appium通过iOS的predicate的模糊或精确匹配使用-ios uiautomation方式寻找元素
- jquery1.6中的.prop()和.attr()异同
- pojsupermark
- java 堆栈的区别
- Android 全局异常捕获的完整实践
- 沈大海38节jquery强化教程2016视频下载
- Cordova插件,自动根据包名替换R资源描述
- H264码率设置 在手机中的设置.
- QLineEdit的IP格式输入