既然已经开始了appium的学习,那么当然少不了元素定位,这里我会持续更新在实际使用过程中定位遇到的问题与解决办法,共勉

我根据手机自带的计算器来解释

Appium元素定位汇总

一:通过id定位

通过工具获取到按钮的 resource-id

driver.find_element_by_id('resource-id')

实例: driver.find_element_by_id(' com.android.bbkcalculator:id/clear')

 

二:通过class定位

通过工具获取到按钮的class

driver.find_element_by_class_name('class')

实例: driver.find_element_by_class_name(' android.widget.ImageButton ')


三:通过text定位(这个没有text我就随便举一个例子了)

appium1.5及之后的版本废弃了name属性(如name=百度一下,需要使用uiautomator的定位方式,使用text的内容)

driver.find_element_by_android_uiautomator("text(\中文\)")

实例:driver.find_element_by_android_uiautomator ("text(\"百度一下\")")

备注:需要确认这个中文是当前页面唯一值,否则还是定位不到,注意写法,不是直接把中文复制进去

 

四:通过xpath定位

driver.find_element_by_xpath("xpath内容 ")

实例:driver.find_element_by_xpath("//android.widget.FrameLayout/android.widget.ImageButton[4]")

以下方式暂时没有用到,如果有问题以后会更改,欢迎大家留言指正


五:通过accessibility_id

在UI Automator Viewer界面上并没有找到这个字段,这个对应的字段是content-desc

driver.find_element_by_accessibility_id("accessibility_id")

没有找到实例,要是自己写自动化的APP碰到了,可以用用


一、通过css_selector定位(webview)

只适用于webview的html页面,继承自webdriver,与pc版本的UI测试一致

driver.find_element_by_css_selector()

 

二、通过link_text定位(webview)

只适用于webview容器中的html页面,继承自webdriver,与pc版本的UI测试一致

driver.find_element_by_link_text()

 

三、通过name定位

只适用于webview容器中的html页面,继承自webdriver,与pc版本的UI测试一致

driver.find_element_by_name()

 欢迎关注微信公众号:

Appium元素定位汇总

相关文章:

  • 2021-11-23
  • 2021-09-01
  • 2022-01-16
  • 2021-05-26
  • 2022-01-08
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-08
  • 2021-10-06
  • 2021-09-23
  • 2022-01-01
  • 2022-12-23
相关资源
相似解决方案