zoukankan      html  css  js  c++  java
  • 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属性定位了)

  • 相关阅读:
    700. Search in a Binary Search Tree
    100. Same Tree
    543. Diameter of Binary Tree
    257. Binary Tree Paths
    572. Subtree of Another Tree
    226. Invert Binary Tree
    104. Maximum Depth of Binary Tree
    1、解决sublime打开文档,出现中文乱码问题
    移植seetafaceengine-master、opencv到ARM板
    ubuntu16.04-交叉编译-SeetaFaceEngine-master
  • 原文地址:https://www.cnblogs.com/123blog/p/12595027.html
Copyright © 2011-2022 走看看