id 定位
通過uiautomatorviewer.bat 工具可以檢視物件的id屬性。
如果目標裝置的api level低於18則uiautomatorviewer不能獲得對應的resource id,只有等於大於18的時候才能使用。
開啟uiautomatorviewer.bat工具:
resource-id 就是我們理解的id屬性了。
使用方法:
driver.findelement(by.id("com.android.calculator2:id/formula"))
name 定位
開啟uiautomatorviewer.bat工具:
text就是我們要查詢的name了,為什麼在命名上毫無關聯啊!
使用方法:
driver.findelement(by.name("9"))
計算器介面上的的class屬性是:android.widget.button。 使用方法:
webelement button = driver.findelement(by.classname("android.widget.button"));
使用 class name 一般獲得的 view 都不止乙個,所以應該需要遍歷一遍得到的 views,然後縮小搜尋條件來獲得目標控制項。
xpath定位
在 webdriver 上 xpath 定位是功能強大的一種定位方式。我個人慣用於此方法來定位web頁面上的元素。下面看看在 android 上 xpath 定位的用法。
用class的屬性來替代做標籤的名字。
使用方法:
driver.findelement(by.xpath("")) //7
當果如果出現class 相同的情況下可以用控制項的屬性值進行區分。
driver.findelement(by.xpath("'7')]")).click(); //7
driver.findelement(by.xpath("'times')]")).click(); //*
driver.findelement(by.xpath("'7')]")).click(); //7
driver.findelement(by.xpath("'equals')]")).click(); //=
accessibility id定位
其實,我們的核心是要找到元素的contentdescription屬性。它就是元素的 content-desc 。
使用方法:
driver.findelementbyaccessibilityid("plus").click();
android uiautomator定位
也就是說乙個元素的任意屬性都可以通過android uiautomator方法來進行定位,但要保證這種定位方式的唯一性。
使用方法:
driver.findelementbyandroiduiautomator("new uiselector().text(\"clr\")").click();
driver.findelementbyandroiduiautomator("new uiselector().text(\"8\")").click();
driver.findelementbyandroiduiautomator("new uiselector().description(\"plus\")").click();
driver.findelementbyandroiduiautomator("new uiselector().text(\"5\")").click();
driver.findelementbyandroiduiautomator("new uiselector().description(\"equals\")").click();
需要注意的是 description() 方法用的是content-desc屬性。 Appium入門(8) 控制項定位
如果目標裝置的api level低於18則uiautomatorviewer不能獲得對應的resource id,只有等於大於18的時候才能使用。開啟uiautomatorviewer.bat後同步裝置螢幕 id定位 driver.findelement by.id name定位 driver.fi...
Appium學習筆記(六) 定位控制項
通過uiautomatorviewer.bat 工具可以檢視物件的id屬性。如果目標裝置的api level低於18則uiautomatorviewer不能獲得對應的resource id,只有等於大於18的時候才能使用。開啟uiautomatorviewer.bat工具 resource id 就...
Appium 定位方法
driver.find element by xpath xpath name driver.find element by id id find element by class name是根據class name獲取滿足條件的第乙個元素 driver.find element by class ...