Appium 通過 uiautomatorviewer.bat 工具來檢視控制元件的屬性。該工具位於 Android SDK 的 /tools/bin/ 目錄下。
常用的Appium定位控制元件有如下:
一、name 定位
開啟uiautomatorviewer.bat工具:
使用方法:
driver.findElement(By.name("9"))
二、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"))
三、Class name 定位
計算器介面上的的class屬性是:android.widget.Button。 使用方法:
WebElement button = driver.findElement(By.className("android.widget.Button"));
使用 Class Name 一般獲得的 view 都不止一個,所以應該需要遍歷一遍得到的 views,然後縮小搜尋條件來獲得目標控制元件。
四、XPath定位
在 WebDriver 上 XPath 定位是功能強大的一種定位方式。我個人慣用於此方法來定位Web頁面上的元素。下面看看在 Android 上 XPath 定位的用法。
五、Accessibility ID定位
這個方法屬於Appium擴充套件的定位方法。
其實,我們的核心是要找到元素的contentDescription屬性。它就是元素的 content-desc 。
使用方法: java driver.findElementByAccessibilityId("plus").click();
六、Android uiautomator定位
這個方法也屬於 Appium(Android)擴充套件的定位方法。同樣使用 UIAutomatorViewer.bat 工具直接檢視。
也就是說一個元素的任意屬性都可以通過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屬性。
- 零基礎安卓開發起步(三)
- Android程序管理:Framework層概念
- 僅 2 位 Java 開發,使用小程式上線一款 App
- 使用VSCode 打包你的第一個flutter應用(安卓篇)
- 阿里面了9次,位元組撈了offer?Android開發狗25次大廠面試辛酸淚
- 方舟編譯器是將java程式碼像C++靜態編譯,那麼為什麼安卓當時一開始為啥不用C++?
- 專科渣校,嘔心瀝血在家3個月“拿下”330頁PDF,終於拿下阿里OFFer
- 神一樣的操作,真的牛逼了!Android Jetpack Compose 最全上手指南
- Android開發者必知的記憶體、效能優化細節
- Android面試官:你究竟有多大的勇氣,在簡歷上寫了“精通”?