您好,登錄后才能下訂單哦!
Appium定位元素的方法有很多,比如經常用的by_name、by_resource-id、by_classname
下面介紹下通過UI Automator方法來定位元素的方法,而且這些方法定位都比較準。
先假設我們通過UiAutomator定位到的元素部分屬性如下:
Index 1
Text xxx
Resource-id android:id/text1
Class android.widget.TextView
Content-desc xxx
一、 通過Text屬性定位
直接通過text名稱定位:
Driver.find_element_by_android_uiautotmator(‘new UiSelector().text(“xxx”)’)
查找某個字符串包含有xxx的元素
Driver.find_element_by_android_uiautomator(‘new UiSelector().textContains(“xxx”)’)
某個以x打頭的元素
Driver.find_element_by_android_uiautomator(‘new UiSelector().textStartWith(“x”)’)
通過Matches方法查找
Driver.find_element_by_android_uiautomator(‘new UiSelector().textMatches(“^xx.*”)’)
二、 通過class屬性定位
通過class名稱查找:
driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.TextView").text("xxx")')
匹配text是xxx并且classname含有TextView的元素:
driver.find_element_by_android_uiautomator('new UiSelector().classNameMatches(".*TextView$").text("xxx")')
三、 Xpath方法定位
通過同級元素定位同級元素,yyyy為同級元素節點text名稱
driver.find_element_by_android_uiautomator('new UiSelector().text("xxx").fromParent(new UiSelector().text("yyyy"))')
通過父級元素定位子元素 ListView為父級節點classname
driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.ListView").childSelector(new UiSelector().text("xxx"))')
四、 resourceId屬性定位
通過resourceId定位:
driver.find_element_by_android_uiautomator('new UiSelector().resourceId("android:id/text1")')
通過matches方法定位:
driver.find_element_by_android_uiautomator('new UiSelector().resourceIdMatches(".*id/text1$")')
好了,先介紹很多吧,對元素進行操作的一些方法及獲取元素的屬性值都與web的類似。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。