• IOSNSPREDICATE APPIUM 定位元素



    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不方便定位,控件属性有明确的匹配规则:iOSNsPredicate

      如果有工具可以直接给出准确的xpath:xpath

      实在不行就用坐标吧

    2 如果控件的属性visible是false的话,请使用控件坐标并获取中心点用tap点击,直接点击控件会失败

  • 相关阅读:
    linux系统安装mysql数据库
    pyinstaller打包问题
    jmeter-Parameters和Body Data两种方式传参的区别
    jmeter-保存响应到文件
    Jenkins获取运行job的用户信息
    pytest插件(多重校验、用例依赖、执行顺序、失败重跑、重复执行、标记)
    谷歌开发者工具(F12)
    Linux常用命令
    一般什么原因会导致偶现问题?
    Fiddler模拟接口返回进行测试(二)
  • 原文地址:https://www.cnblogs.com/kaola8023/p/12605211.html
Copyright © 2020-2023  润新知