Appium定位元素方法
根据ID
在安卓应用自动化的时候,如果能根据ID选择定位元素,最后根据ID,
英文一般来说ID是唯一的,所有根据ID选择效率高,
但是ID,是安卓应用元素的resource-id属性
使用代码如下:
driver.find_element_by_id('expand_serach')
根据ClASS NAME
安卓界面元素的属性 其实就是根据元素的类型 类似web里面的tagname、所以通常不是唯一的
通常、我们根据class属性来选择元素、是要选择多个而不是一个。
如果确定要找的界面元素的类型在当前页面中只有一个、就可以根据class来唯一选择
使用代码如下:
deiver.find_elements_by_class_name('android.widget.TextView')
由图看出搜索出的元素id相同,但是也有相同的class 这个时候我们可以根据find_elements_by_class_name 一起定位
根据ACCESSIBLITY ID
元素的 content-desc属性是用来描述该元素的作用的
如果要查询的界面有 content-desc属性,为我们可以通过它来定位选择元素
使用代码如下
driver.find_element_by_accessibility_id('搜索查询')
直接搜索 元素的描述
Xpath
Appium 也支持 Xpath选择元素
但是其可靠性和性能不如 Selenium Web自动化, 因为Web自动化对Xpath的支持是由浏览器实现的,而Appium Xpath的支持是Appium Server 实现的
毕竟,浏览器产品的成熟度对比Appium要高很多
当然、Xpath是标准语法,所以这里表达式的语法规则和Selenium里面的Xpath的语法
是一样的,
使用代码如下:
driver.find_element_by_xpath('//ele/ele2[@attr="value"]')
也可利用放大镜xpath定位元素