Appium元素定位方法

单个元素定位:

driver.find_element_by_accessibility_id(id) 
driver.find_element_by_android_uiautomator(uia_string) 
driver.find_element_by_class_name(name) 
driver.find_element_by_css_selector(css_selector) 
driver.find_element_by_id(id_) 
driver.find_element_by_ios_predicate(predicate_string) 
driver.find_element_by_ios_uiautomation(uia_string) 
driver.find_element_by_link_text(link_text) 
driver.find_element_by_name(name) 
driver.find_element_by_partial_link_text(link_text) 
driver.find_element_by_tag_name(name) 
driver.find_element_by_xpath(xpath)

多个元素定位:

driver.find_elements_by_accessibility_id(id) 
driver.find_elements_by_android_uiautomator(uia_string) 
driver.find_elements_by_class_name(name) 
driver.find_elements_by_css_selector(css_selector) 
driver.find_elements_by_id(id_) 
driver.find_elements_by_ios_predicate(predicate_string) 
driver.find_elements_by_ios_uiautomation(uia_string) 
driver.find_elements_by_link_text(text) 
driver.find_elements_by_name(name) 
driver.find_elements_by_partial_link_text(link_text) 
driver.find_elements_by_tag_name(name) 
driver.find_elements_by_xpath(xpath)

其他:

还有两个私有的方法:

driver.find_element(by, value)

driver.find_elements(by, value)

单个元素定位和多个元素定位的区别就是,单个元素定位返回是单个元素,多个元素定位返回的是包含多个元素的一个列表。

这里其他部分的私有方法,因为属于私有的,一般不直接使用。

详细介绍

1. find_element_by_id

用法:通过元素id来查找元素

示例:driver.find_element_by_id('com.android.calculator2:id/digit8')

这里元素id和 UIAutomatorView 中该元素的 resource id是一致的。

这里需要注意的是,Android 4.3 以上系统才会有 resource id。我尝试过 Android 4.2.2系统,结果resource id这里一直是空。

2. find_element_by_accessibility_id(id)

示例:driver.find_element_by_accessibility_id("delete")

这里的accessibility id 跟 UIAutomatorView 中该元素的 content-desc 是一致的。

 

3. find_element_by_name(name)

用法:通过元素 name 来查找元素

示例:driver.find_element_by_name("Create a new contact")

这里的name跟 UIAutomatorView 中该元素的 Text是一致的。

需要注意的是,最好不要用这种定位方法,因为 Appium v1.0 已经不建议使用通过name进行定位的方式。

4. find_element_by_class_name(name)

用法:通过元素class name来查找元素

示例:driver.find_element_by_class_name("android.widget.Button")

这里的class name跟 UIAutomatorView 中该元素的 class 是一致的。

需要注意的是,由于 class name不是唯一的,所以可能存在一个页面上有多个元素具有相同的class name。

5. find_element_by_xpath(xpath)

用法:通过元素xpath来查找元素

示例:driver.find_element_by_xpath("//android.widget.Button[@text='8']")

通过xpath进行定位的好处是,比较绝对,任何一个元素都可以通过xpath进行定位。

 

6. find_element_by_android_uiautomator(uia_string)

用法:通过 UiAutomator 中的定位来进行定位

示例:driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.android.calculator2:id/digit8")')

这里可以通过UiSelector()的多种方式进行定位,上面只是举例采用了 resourceId而已。

其他定位方式

find_element_by_css_selector(css_selector)

find_element_by_tag_name(name)

find_element_by_link_text(link_text)

find_element_by_partial_link_text(link_text)

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

  全套资料获取方式:点击下方小卡片自行领取即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码小怡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值