Appium无法显示WEBVIEW,但实际上存在于Android Native App上

时间:2016-10-09 07:46:25

标签: android webview appium python-appium

我在Mac上运行Appium,直接在Android设备上测试Android Native App。但是,当我尝试获取上下文并切换到包含WEBVIEW的内容时(当我使用UIAutomatorChrome DevelopTool Inspector时,它确实存在,名为android.webkit.WebView),但是当我尝试{ {1}}它给了我没有上下文...... 只返回一个上下文driver.switch_to.context('WEBVIEW')

当我使用检查器时,我能够看到一个WebView和附加到它上面的很多View子项,它们与应用程序中的每个元素相关。因此,尽管它没有在Web视图模式下显示元素树,但我能够看到它使用WebView,但不知何故无法连接到该特定上下文。 enter image description here

我发现有些人提供更改NATIVE_APP它对我不起作用,因为我的其他原生元素如果发生变化则无法再找到。

desire_capability['automationName']='Selendroid'

有关于此的任何想法,请?

4 个答案:

答案 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 给你一些可能有用的代码。