我在Mac上运行Appium,直接在Android设备上测试Android Native App。但是,当我尝试获取上下文并切换到包含WEBVIEW的内容时(当我使用UIAutomator
或Chrome DevelopTool Inspector
时,它确实存在,名为android.webkit.WebView
),但是当我尝试{ {1}}它给了我没有上下文......
只返回一个上下文driver.switch_to.context('WEBVIEW')
。
当我使用检查器时,我能够看到一个WebView和附加到它上面的很多View子项,它们与应用程序中的每个元素相关。因此,尽管它没有在Web视图模式下显示元素树,但我能够看到它使用WebView,但不知何故无法连接到该特定上下文。
我发现有些人提供更改NATIVE_APP
它对我不起作用,因为我的其他原生元素如果发生变化则无法再找到。
desire_capability['automationName']='Selendroid'
有关于此的任何想法,请?
答案 0 :(得分:0)
尝试以下代码切换到webView:
Set<String> contextNames = driver.getContextHandles();
for(String context : contextNames) {
if(context.toLowerCase().contains("web")){
System.out.println("Context Name is " + context);
driver.context(context);
status=true;
break;
}
}
答案 1 :(得分:0)
您没有提到是否已在所需功能中配置了chromedriver。在您在测试中进行设置之前,驱动程序不会识别WV。
答案 2 :(得分:0)
尝试运行Webkit代理可能会对您有所帮助
在终端中运行:
ios_webkit_debug_proxy -c deviceID:27753 -d
获取deviceID:
instruments -s devices
答案 3 :(得分:0)
看文档,需要开启webView调试:
<块引用>不幸的是,在您的应用构建中还需要一个额外的步骤。如 Android 远程调试文档中所述,必须将 android.webkit.WebView 元素上的 setWebContentsDebuggingEnabled 属性设置为 true。
来源:http://appium.io/docs/en/writing-running-appium/web/hybrid/
还有 this response 给你一些可能有用的代码。