• 二、appium+python find_element定位元素的方法


    1.继承webdriver的几个常见的定位方法

    a.find_element_by_id("id")

    b.find_element_by_name()  #text值,appium 1.14.0+python 3.7这个方法提示不支持

    c.find_element_by_className()

    2.appium拓展方法

    这里以微信会话界面为例

    a.find_element_by_android_uiautomator('new UiSelector().text("")')

    # device_a.find_element_by_android_uiautomator('new UiSelector().text("CYDtest594")').click()
        # device_a.find_element_by_android_uiautomator('new UiSelector().textContains("CYD")').click()
        # device_a.find_element_by_android_uiautomator('new UiSelector().textStartsWith("CYD")').click()
        device_a.find_element_by_android_uiautomator('new UiSelector().textMatches("CYD(.*)")').click()

    b.find_element_by_android_uiautomator('new UiSelector().className("")')  用法可参考a(classNameContains())

    find_element_by_android_uiautomator('new UiSelector().classNameContains("")')

    c.find_element_by_android_uiautomator('new UiSelector().resourceId("")')   #

    find_element_by_android_uiautomator('new UiSelector().resourceIdMatches("")')   #正则

    d.description--(用法同1)

    e.find_element_by_accessibility_id content_dec

    2.1 一些appium的其他定位方式

    a.特殊属性

    返回值

    API

    说明

    uiselector

    Checked(boolean val)

    选择属性

    uiselector

    Clickable(boolean val)

    可点击属性

    uiselector

    Enabled(boolean val)

    Enable属性

    uiselector

    Focuseable(boolean val)

    焦点属性

    uiselector

    Focused(boolean val)

    当前焦点属性

    uiselector

    Longclickable(boolean val)

    长按属性

    uiselector

    Scrollable(boolean val)

    滚动属性

    uiselector

    Selected(boolean val)

    背景选择属性

    b.index和instance

    索引index指在同级中的编号,在兄弟类中的主键编号。实例instance指的是整个布局文件中的编号,同一个类的同级编号。???

    index

    device_a.find_elements_by_android_uiautomator('new UiSelector().className("android.widget.LinearLayout")').index(0)  # 'WebElement' object has no attribute 'instance'
    device_a.find_element_by_android_uiautomator('new UiSelector().className("android.widget.LinearLayout")').index(0)  # 也错误

    instance()
    device_a.find_elements_by_android_uiautomator('new UiSelector().className("android.widget.LinearLayout")').instance(0)  # 运行提示错误,list has no attribute instance
    device_a.find_element_by_android_uiautomator('new UiSelector().className("android.widget.LinearLayout")').instance(0) # 运行提示错误,'WebElement' object has no attribute 'instance'

    这里其实find_elements返回的是一个list,可以直接使用下标list[]。

    c.多个属性

     eg.

    device_a.find_element_by_android_uiautomator('new UiSelector().className("android.view.View").text("CYDtest594")').click()

     3.相对元素定位

    childSelector:从当前类往下找符合条件的子类 eg.

    device_a.find_element_by_android_uiautomator('new UiSelector().className("android.view.View")').childSelector('new UiSelector().xxx')

    fromParent

    device_a.find_element_by_android_uiautomator('new UiSelector().className("android.view.View")').fromParent('new UiSelector().xxx')  找object同一父控件的兄弟控件

    先找到父元素A=
    evice_a.find_element_by_android_uiautomator('new UiSelector().className("android.view.View"))
    再找A下的子元素A.find_element_by_...

  • 相关阅读:
    centos7查看yum安装的软件及路径
    CentOS7图形界面与命令行界面切换(转载)
    vmware安装centos7
    如何在IE11中设置兼容模式?设置的具体方法
    docker批量删除容器、镜像
    在Linux Centos 7.2 上安装指定版本Docker 17.03
    如何避免命令 rm -rf 的悲剧
    python django整理(五)配置favicon.ico,解决警告Not Found: /favicon.ico(转载)
    Ubuntu终端命令行缩短显示路径
    virtualenv 虚拟环境依赖安装
  • 原文地址:https://www.cnblogs.com/Cc905/p/12705519.html
Copyright © 2020-2023  润新知