zoukankan      html  css  js  c++  java
  • appium几种元素定位(id,class,content-desc,AndroidUiAutomator,bound,相对定位-通过父类,xpath)

    appium 五种定位方式
    1.通过id定位,resrouce-id
    2.通过ClassName定位: classname
    3.通过Accessiblityld定位:content-desc
    4.通过AndroidUiAutomator

    5.根据bound定位

    6.相对定位

    7.通过xpath定位(app中很少用到)终极定位

    通过id定位,

    resrouce-id

    driver.find_element_by_id('co****ban:id/navigation_tiku').click()
    time.sleep(2)


    通过Accessiblityld定位:content-desc


    driver.find_elements_by_accessibility_id()#值为content-desc的值

    通过ClassName定位: classname

    driver.find_element_by_class_name()


    通过AndroidUiAutomator

    driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.TextView").textContains("信息").resourceId("com.lemon.lemonban:id/category_title")').click()

    根据bound定位

    目前使用bounds定位的方式一般是因为这个元素clickable=false时,用bounds进行定位后用tap方法模拟点击。


    相对定位

    先找到元素的父元素节点,再通过父元素进行元素定位

    root_element=driver.find_element_by_id('id')
    root_element.find_element_by_class_name('android.widget.TextView').click()


    通过xpath定位(app中很少用到)
    driver.find_element_by_xpath('//android.widget.ImageView[@resource-id="com.zhijiepay.xls:id/confirm_ok"]').click()
    #注意调试时不关闭driver,则认为进程还在开启中,uiautomatorviewer截图会出现失败。

    本身SDK自带的uiautomatorviewer可能没有获取xpath的功能。

    下载可以获取xpath的uiautomatorviewer 的 github 地址:https://github.com/lazytestteam/lazyuiautomatorviewer

    将新的jar包放到原来的uiautomatorviewer的jar包目录,名字一定要和原生的jar包名字相同,不然会打不开。

    运行uniautomatorviewwe.bat结果如下:

    driver.find_element_by_xpath("//android.widget.ImageView[@resource-id='com.zhijiepay.xls:id/confirm_ok']").click()

    由上面可以看出,xpath是由resource-id 和 class 拼接起来的:

    xpath = //"classname"[@resource-id="resourceid "]

    @后面可以是resource-id,也可以是其他的属性

  • 相关阅读:
    Vue--路由
    Vue -- 双向过滤器去除html标签
    SQL表的基本操作
    .NET面试题
    MVC Razor
    MVC aspx
    CSS修改滚动条样式
    C# 制作图片验证码
    上传图片加水印
    eclipse常用快捷键
  • 原文地址:https://www.cnblogs.com/may18/p/14474147.html
Copyright © 2011-2022 走看看