2016-11-15 52 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的那个 –

相关问题