1. 程式人生 > >iOSNsPredicate Appium 定位元素

iOSNsPredicate Appium 定位元素

bsp fin inspect drive 規則 acc 屬性 access 使用

Appium使用WebDriverAgent之後,新增了一種定位方法iOSNsPredicate,總結了一下使用方法:

MobileElement photo = driver.findElementByIosNsPredicate("name = ‘head new‘"); // 等於

MobileElement photo = driver.findElementByIosNsPredicate("name LIKE ‘*new‘"); // 模糊匹配

MobileElement photo = driver.findElementByIosNsPredicate("name MATCHES ‘^$‘"); // 正則表達式匹配

List<IOSElement> items1 = driver.findElementsByIosNsPredicate("name CONTAINS ‘我的‘"); // 包含

List<IOSElement> items2 = driver.findElementsByIosNsPredicate("name BEGINSWITH ‘我的‘"); // 以"我的"開始

List<IOSElement> items3 = driver.findElementsByIosNsPredicate("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

最後給個建議:

1 選擇定位方式的判斷:

  如果顯示在界面的文本唯一或是第一個出現:使用accessibility

  如果class唯一或是第一個出現:className

  ID或class不方便定位,控件屬性有明確的匹配規則:accessibility

  如果有工具可以直接給出準確的xpath:xpath

  實在不行就用坐標吧

2 如果控件的屬性visible是false的話,請使用控件坐標並獲取中心點用tap點擊,直接點擊控件會失敗

iOSNsPredicate Appium 定位元素