0

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

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

我发现有些人提供的更改desire_capability['automationName']='Selendroid'对我不起作用,因为如果更改,我的其他本地元素将无法再找到。

platform : Android
version : 5.1.1
device: real android device

请问对此有什么想法吗?

4

4 回答 4

0

查看文档,您需要启用 webView 调试:

不幸的是,在您的应用程序构建中还需要一个额外的步骤。如 Android 远程调试文档中所述,必须将 android.webkit.WebView 元素上的 setWebContentsDebuggingEnabled 属性设置为 true。

来源:http ://appium.io/docs/en/writing-running-appium/web/hybrid/

响应还为您提供了一些可能有用的代码。

于 2021-04-20T16:09:13.877 回答
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;
        }
    }       
于 2016-10-14T04:35:33.920 回答
0

尝试运行 webkit 代理它可能会帮助你

在终端中运行:

ios_webkit_debug_proxy -c deviceID:27753 -d

获取设备ID:

instruments -s devices
于 2018-09-07T02:41:11.127 回答
0

您没有提到您是否已在所需功能中配置了 chromedriver。驱动程序不会识别 WV,直到您在测试中设置它。

于 2018-09-02T04:09:46.597 回答