Appium安卓端定位元素

2021-10-10 07:08:23 字數 1486 閱讀 6623

在selenium web自動化教程裡,我們說過,如果能根據id選擇定位元素,最好根據id,因為通常來說id是唯一的,所以根據id選擇 效率高。

在安卓應用自動化的時候,同樣可以根據id查詢。

但是這個id ,是安卓應用元素的resource-id屬性

使用如下**

driver.find_element_by_id('expand_search')
安卓介面元素的 class屬性 其實就是根據元素的型別,類似web裡面的tagname, 所以通常不是唯一的。

通常,我們根據class 屬性來選擇元素, 是要選擇多個而不是乙個。

當然如果你確定 要查詢的 介面元素的型別 在當前介面中只有乙個,就可以根據class 來唯一選擇。

使用如下**

driver.find_elements_by_class_name('android.widget.textview')
元素的 content-desc 屬性是用來描述該元素的作用的。

如果要查詢的介面元素有 content-desc屬性,我們可以通過它來定位選擇元素。

使用如下**

driver.find_element_by_accessibility_id('找人')
當然,xpath是標準語法,所以這裡表示式的語法規則和 以前學習的selenium裡面xpath的語法是一樣的,比如

driver.find_element_by_xpath('//ele1/ele2[@attr="value"]')
code = 'new uiselector().text("熱門").classname("android.widget.textview")'

ele = driver.find_element_by_android_uiautomator(code)

ele.click()

uiselector 的childselector可以選擇後代元素,比如

code = 'new uiselector().resourceid("tv.danmaku.bili:id/recycler_view").childselector(new uiselector().classname("android.widget.textview"))'

ele = driver.find_element_by_android_uiautomator(code)

注意: childselector後面的引號要框住整個 子 uiselector 的表示式

Appium 常見API 二(定位元素)

1.根據id屬性值定位目標元素 driver.find element by id id屬性值 引數是uiautomator viewer工具中對應 resource id 的值,返回根據id匹配到的目標元素。通常id值是唯一的,如果id值不唯一則返回匹配到的第乙個元素 driver.find el...

css selector定位元素

selenium中經常要用css selector定位元素,雖說可以用firefox的firebug firepath直接copy元素的xpath路徑,但有時還是很必要用css selector來定位,也算技多不壓身吧 系統的學習一下,也當是臨陣磨槍。一共8種方式的選擇器。根據元素的標籤定位,如下 ...

CSS Selector定位元素

滴 今日打卡!博主之前寫過一篇關於xpath元素定位的部落格,裡面也有提到過xpath方法和css選擇器方法的比較 今天就補上css選擇器定位筆記。1.css選擇器定位元素 1 標籤選擇器 driver.find element by css selector li 選擇所有 li標籤元素 2 類選...