zoukankan      html  css  js  c++  java
  • appium 元素定位方法汇总

    以上图为例,要定位到右下角的 我的 ,并点击

    # appium的webdriver提供了11种元素定位方法,在selenium的基础上扩展了三个,可以在pycharm里面输入driver.find_element_by然后会自动匹配出来
    #通过id定位成功
    driver.find_element_by_id("com.xyh.commerce:id/ll_personal").click()


    #tap是模拟手指点击,一般页面上元素.语法有两个参数,第一个是positions,是list类型最多五个点,duration是持续时间,单位毫秒
    #通过tap定位成功
    driver.tap([(600,1205)],300)


    #通过xpath定位
    driver.find_element_by_xpath("//*[@resource-id='com.xyh.commerce:id/ly_main_tab_bottom']//android.widget.LinearLayout[3]").click()


    # 通过android_uiautomator定位
    # 通过id定位
    my = 'new UiSelector().resourceId("com.xyh.commerce:id/ll_personal")'
    driver.find_element_by_android_uiautomator(my).click()

    # 通过text定位
    # 1.通过text文本定位语法
    new UiSelector().text("text文本")
    # 2.文本比较长的时候,可以用textContains模糊匹配,只要文本包含匹配内容就可以了。
    new UiSelector().textContains("包含text文本")
    # 3.textStartsWith是以某个文本开头的匹配
    new UiSelector().textStartsWith("以text文本开头")
    # 4.正则匹配textMatches,这个需要配合正则表达式,就不举例了。
    new UiSelector().textMatches("正则表达式")


    # class属性一般不唯一,多半用在复数定位,className复数定位
    loc_class = 'new UiSelector().className("android.widget.TextView")'
    driver.find_elements_by_android_uiautomator(loc_class)[2].click()


    # 组合定位,一般组合用id,class,text这三个属性会比较好一点
    # id+class 属性组合
    id_class = 'resourceId("com.xyh.commerce:id/ll_personal").className("android.widget.LinearLayout")'
    driver.find_element_by_android_uiautomator(id_class).click()


    # 父子定位childSelector
    # 有时候不能直接定位某个元素,但是它的父元素很好定位,这时候就先定位父元素,通过父元素找儿子。
    son = 'resourceId("com.xyh.commerce:id/ll_personal").childSelector(text("我的"))'
    driver.find_element_by_android_uiautomator(son).click()


    # 兄弟定位fromParent
    # 有时候父元素不好定位,但是跟他相邻的兄弟元素很好定位,这时候就可以通过兄弟元素,找到同一父级元素下的子元素。
    brother = 'resourceId("com.xyh.commerce:id/img_personal").fromParent(text("我的"))'
    driver.find_element_by_android_uiautomator(brother).click()
  • 相关阅读:
    9、spring五种scope
    2、数据库四种事务隔离级别
    4、jquery获取servlet值
    3、$.post不执行
    A brief Arch installation in VMware
    Git经验记录
    Windows上virtualenv搭建python开发环境
    no such file django-admin.py
    复制拷贝函数+重载operator=
    Reconfigure CentOS+freeradius+daloradius again
  • 原文地址:https://www.cnblogs.com/tuxiaomeng/p/10442514.html
Copyright © 2011-2022 走看看