2016-11-15 55 views
0

目標:爲所有訪客用戶單擊Access。 我無法找到此元素。帶有內容desc的Android應用程序xpath - 處理換行

uiautomatorviewer顯示以下屏幕截圖。 enter image description here

內容介紹如下複製/粘貼 「爲所有來賓用戶沒有列出 提供商訪問?請繼續關注,我們將很快增加更多的電視提供商。」

注意:用戶之後的換行符。我相信這就是爲什麼我的XPath不工作。

我的XPath是: 「//android.view.View[@content-desc =‘爲所有客人usersProvider訪問未上市敬請期待,我們將很快增加更多的電視提供商?’]」

因爲上面的圖層中的對象具有相同的類和索引,所以我不能使用索引而不是content-desc。

使用tap可以解決問題,但不是一個好的解決方案。 關於如何處理該換行符的任何想法。

+3

你可以嘗試使用包含像'//android.view.View[contains(@content-desc,'Access for all guest users')]' –

+0

我已經嘗試過了。不起作用。 – MMSA

回答

2

如果您注意到XML層次結構,您會注意到您的元素位於WebView(從頂部的第3個節點)內。所以它沒有被識別。您必須先切換到WebView,然後使用您的代碼。

一旦您切換到WebView,您提到xpath的方式應該可行。

+0

謝謝安尼什, 當你說切換到WebView,我該如何切換到該特定的網絡視圖? 這是一個沒有框架。 driver.getContextHandles(); >> ??? – MMSA

+2

'設置 contextNames = driver.getContextHandles();對於(字符串上下文名稱:上下文名稱) { \t if(contextName.contains(「WEBVIEW」)){ \t \t driver.context(「WEBVIEW」); \t \t break; \t} }' –

+1

上述情況中的contextNames會給出類似[NATIVE_APP,WEBVIEW_ ]的內容。所以你可以切換到其中有WEBVIEW的那個 –

相關問題