Appium 常见API 二(定位元素)

使用android SDK 自带的工具uiautomator viewer 查看app 页面控件的各个属性:

1.根据id属性值定位目标元素:

driver.find_element_by_id( id属性值 ):参数是uiautomator viewer工具中对应【resource-id】的值,返回根据id匹配到的目标元素。通常id值是唯一的,如果id值不唯一则返回匹配到的第一个元素

driver.find_elements_by_id( id属性值 ):以list形式返回根据id匹配到的所有元素

2.根据name属性值定位目标元素:

driver.find_element_by_name( name属性值 ):参数是uiautomator viewer工具中对应【text】的值,返回根据name匹配到的目标元素。如果匹配到多个元素则返回第一个元素

driver.find_elements_by_name( name属性值 ):以list形式返回根据name匹配到的所有元素

3.根据content-desc属性值定位目标元素:

driver.find_element_by_accessibility_id( content-desc属性值 ):参数是uiautomator viewer工具中对应【 content-desc】的值,返回根据 content-desc匹配到的目标元素。如果匹配到多个元素则返回第一个元素

driver.find_elements_by_accessibility_id( content-desc属性值 ):以list形式返回根据 content-desc匹配到的所有元素

4.根据xpath 定位目标元素:

xpath通过路径表达式查找xml文档中的元素,具体语法参考:http://www.w3school.com.cn/xpath/xpath_syntax.asp

driver.find_element_by_xpath(路径表达式):返回根据 路径表达式匹配到的目标元素。如果匹配到多个元素则返回第一个元素

driver.find_elements_by_xpath(路径表达式):以list形式返回根据 路径表达式匹配到的所有元素

如:要定位截图中箭头所指的元素,可以这样使用:

5.根据class name 定位目标元素:

driver.find_element_by_class_name(class name):参数是uiautomator viewer工具中对应【class】的值,返回根据 class name匹配到的目标元素。如果匹配到多个元素则返回第一个元素

driver.find_elements_by_class_name(class name):以list形式返回根据 class name匹配到的所有元素

 

6.其他的定位元素API find_element_by_css_selector、find_elements_by_css_selector、find_element_by_link_text、find_elements_by_link_text、find_element_by_tag_name、find_elements_by_tag_name等与上述API用户类似

原文地址:https://www.cnblogs.com/suyuqinghuan/p/7704717.html