我正在測試使用appium的android混合應用程序。任何人都可以請告訴我如何使用UIAutomator查找元素,因爲appium給出的xpath在我的情況下不起作用。如何在appium中使用UIAutomator查找元素
非常感謝!
我正在測試使用appium的android混合應用程序。任何人都可以請告訴我如何使用UIAutomator查找元素,因爲appium給出的xpath在我的情況下不起作用。如何在appium中使用UIAutomator查找元素
非常感謝!
我有我的應用程序在真實設備上測試(但它也可以在仿真器上)連接到我的桌面並運行它,打開一些屏幕/頁面。比我以管理員身份運行uiautomatorviewer.bat(奇怪,但我必須以管理員身份運行它)。比單擊UI Automator Viewer左上角的設備屏幕圖標圖標,我可以在右側窗格中看到屏幕截圖和Android類。我可以導航,點擊不同的元素並觀察它們的層次結構。
查看上面的條款鏈接和ListView有資源ID或文本屬性?
我想你可以嘗試類似如下:
xpath="(//android.widget.ListView[contains(@resource-id,'some_id')]//android.widget.View)[2]/android.widget.View"
試圖找到節點,然後創建與孩子相對路徑。
// - means any after (any child)
/- goes immediate after
[2] - the second item that corresponds the criteria
,如果你知道text屬性的值,你可以使用類似:[contains(@text, 'some part of text')]
試試這個:
driver.findElementsByXPath("//*[@class='android.view.View' and @index='0']");
沒有,它不具有資源的ID或文本屬性。但是,術語鏈接視圖具有內容描述。所以我用 driver.findElement(By.xpath(「// android.view.View [@ content-desc ='Terms Link']」))。click(); 現在,我的測試用例通過,但在設備上沒有點擊執行。我應該使用android.widget.View而不是android.view.View? – Suman 2015-03-03 12:55:18
不,因爲我看到android.view.View有屬性clickable = true。嘗試統計有多少元素符合屏幕上的標準。 'List elements = \t \t driver.findElements(By.xpath(「// android.view.View [@ content-desc ='Terms Link']」)); \t \t System.out.println(elements.size());' –
Alex
2015-03-03 13:07:12
另外,我會建議在您的Android設備設置(開發人員)上設置以顯示觸摸和點擊以查看Appium腳本在哪裏點擊的確切位置 – Alex 2015-03-03 13:40:09