java-client新增查找元素方式iOSNsPredicate

来源:互联网 发布:网络推广员是做什么的 编辑:程序博客网 时间:2024/06/07 07:39

1、Appium使用WebDriverAgent之后,新增了一种定位方法iOSNsPredicate, 

driver.findElementByIosNsPredicate("name = ‘head new‘"); // 等于

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

driver.findElementByIosNsPredicate("name MATCHES ‘^$‘"); // 正则表达式匹配

driver.findElementsByIosNsPredicate("name CONTAINS ‘我的‘"); // 包含

driver.findElementsByIosNsPredicate("name BEGINSWITH ‘我的‘"); // 以"我的"开始

List<IOSElement> items3 = driver.findElementsByIosNsPredicate("name BEGINSWITH ‘我的‘ && name ENDSWITH ‘消息‘"); // 以"我的"开始并且以"消息"结尾

其中属性名参照inspector的属性字段,关键字LIKE,MATCHES,CONTAINS,BEGINSWITH,ENDSWITH必须是大写,匹配的字符需要用单引号

2、同样,结合pagefactory,可以使用注解方式标注元素,列举一种方式,其他同理

    //goods价格
    @AndroidFindBy(id = "com.sankuai.meituan:id/yuan")
    @iOSXCUITFindBy(iOSNsPredicate = "name BEGINSWITH '¥'")
    private MobileElement poiPrice;

调用时,使用poiPrice.click();即可完成查找和点击元素

注:注意要使用新版本java-client

<dependency>
            <groupId>io.appium</groupId>
            <artifactId>java-client</artifactId>
            <version>5.0.4</version>
        </dependency>

官方参考地址:

https://github.com/appium/appium/tree/master/docs/en/writing-running-appium