• Android元素定位方法


    appium提供安卓端几种定位方式如下:

    1.id定位

    通过元素的resource-id属性来定位元素

    方法名:find_element_by_id("resource-id值")

    2.classname定位

    通过元素的class属性

    方法名:find_element_by_class_name("class值")

    3.AccessibilityId定位

    通过元素的的content-desc属性

    方法名:find_element_by_Accessibility_id("conten-desc值")

    4.AndroidUiAutomator定位

    UiAutomator元素定位是Android系统原生支持的定位方式,虽然与xpath类似,但比它更好用,且支持的元素全部属性定位,定位原理是通过android自带的android uiautomator的类库区查找元素。

    方法名:find_element_by_android_uiautomator("uiSelector表达式")

    该方法的参数为UIselector类定位元素的表达式: new UiSelector().函数名称("定位表达式")

    实例化一个UIselector对象,然后通过实例调用对应的方法。每一个方法返回的都是UIselector对象本身。

    如:find_element_by_android_uiautomator(‘new UiSelector.textContains("登录")’)

    注意:UIselector类下的函数表达式参数如果是字符串,必须是双引号。因为是java的语法风格,在java中双引号菜表示字符串。

    UIselector类的函数具体用法可参照之前的博客:https://www.cnblogs.com/123blog/p/12594714.html

    方法名:find_element_by_android_uiautomator('uiSelector 表达式')

      该方法的参数为 UiSelector 类定位元素的表达式:new UiSelector().函数名称("定位表达式")

      实例化一个 UiSelector 对象,然后通过实例调用对应的方法,每一个方法返回的都是UiSelector 对象本身

      注意:UiSelector 类下面的函数的参数如果是字符串,必须是双引号,这是 Java 的语法风格,在 Java 中,双引号才表示字符串

    UiSelector 类的常用定位的函数如下:

    1.资源id方法

    • resourceId(String id)  资源 id
    • resourceIdMatches(String regex)  资源 id 正则

    2.文本方法

    • text(String text)  文本匹配
    • textContains(String text)  文本包含
    • textStartsWith(String text)  文本开始字符
    • textMatches(String regex)  文本正则

    3.描述方法

    • description(String desc)  描述
    • descriptionContains(String desc)  描述包含
    • descriptionStartsWith(String desc)  描述开始字符
    • descriptionMatches(String regex)  描述正则

    4.类名方法

    • childSelector(UiSelector selector)  子类
    • fromParent(UiSelector selector)  父类
    • className(String className)  类名

    5.索引、实例方法

    • index(int index)  编号
    • instance(int instance)  索引

    6.特有属性方法

    • checked(boolean val)  选择属性
    • checkable(boolean val)  点击属性
    • enabled(boolean val)  enabled 属性
    • focusable(boolean val)  焦点属性
    • longClickable(boolean val)  长按属性
    •  scrollable(boolean val)  滚动属性
    • selected(boolean val)  选择属性

    7.包名方法

    • packageName(String name)  包名
    • packageNameMatches(String regex)  包名正则

    示例:

    new UiSelector().text("text")  # 使用元素 text 属性定位
    new UiSelector().resourceId("id")  # 使用 id 定位
    new UiSelector().className("className")  # 使用元素类型定位
    
    # 还可以元素多个属性自由组合
    new UiSelector().className("className").text("text")
    new UiSelector()..resourceId("id").clickable(val)

    5.xpath定位

    方法名:find_element_by_xpath("xpath表达式")

    定位方式示例:

    driver.find_element_by_id("com.xxxx.fenwo:id/bt_login").click()
    
    driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.xxxx.fenwo:id/bt_login")')
    
    driver.find_element_by_android_uiautomator('new UiSelector().text("发现")')
    

    备注:name定位不支持appium1.5以上版本

    1、name定位就是通过UI Automator工具查看的text属性

    **appium1.5以下老的版本是可以通过name定位的,新版本从1.5以后都不支持name定位了**

    (如果text属性为空,那就不能通过name属性定位了)

  • 相关阅读:
    virtualenv+pyenv管理python工作环境
    OpenStack 安装:neutron服务
    OpenStack 安装:nova服务
    node.js工具 nodemon使用
    js的数据类型及数据类型检测
    Git 工具
    Object.prototype.toString.call() 、 instanceof 以及 Array.isArray()判断数组的方法的优缺点
    重绘和回流及优化
    jsapi 调起微信支付的的踩坑
    总结Jquery中获取自定义属性使用.attr()和.data()以及.prop()的区别
  • 原文地址:https://www.cnblogs.com/123blog/p/12595027.html
Copyright © 2020-2023  润新知