根據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定位元素