Appium使用WebDriverAgent之後,新增了一種定位方法iOSNsPredicate,總結了一下使用方法:
name = 'head new'
// 等於
name LIKE '*new'
// 模糊匹配
name MATCHES '^$'
// 正則表達式匹配
name CONTAINS '我的'
// 包含
name BEGINSWITH '我的'
// 以"我的"開始
name BEGINSWITH '我的' && name ENDSWITH '消息'
// 以"我的"開始並且以"消息"結尾
其中屬性名參照inspector的屬性字段,關鍵字LIKE,MATCHES,CONTAINS,BEGINSWITH,ENDSWITH必須是大寫,匹配的字符需要用單引號
官方參考地址:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/ios_predicate.md
選擇定位方式的判斷:
如果顯示在界面的文本唯一或是第一個出現:使用accessibility
如果class唯一或是第一個出現:className
ID或class不方便定位,控件屬性有明確的匹配規則:iOSNsPredicate
如果有工具可以直接給出準確的xpath:xpath
實在不行就用座標吧
2 如果控件的屬性visible是false的話,請使用控件座標並獲取中心點用tap點擊,直接點擊控件會失敗