Appium 不显示 webview 上下文,它只显示本机应用程序上下文。如何获取 webview 上下文?

Posted

技术标签:

【中文标题】Appium 不显示 webview 上下文,它只显示本机应用程序上下文。如何获取 webview 上下文?【英文标题】:Appium does not show webview context, it only showing native app context. How to get webview context? 【发布时间】:2019-06-28 22:56:18 【问题描述】:

我正在尝试获取可用的应用程序上下文并想切换到 webview 上下文,但 appium 只获得了 Navive 应用程序。

应用程序也启用了 WebView。

Appium 版本:1.10.1 ChromeDriver 版本:2.44 桌面操作系统/版本:Windows 10 Node.js 版本:10.14.2 包管理器:Npm 移动平台/版本:android/8.1.0 真实设备或模拟器/模拟器:google pixel 2 模拟器

Appium CLI 或 Appium.app|exe:两者都试过

    public void webView() 
           try 
                Set<String> context = driver.getContextHandles();

                for(String cont: context) 
                    System.out.println("Available Context : " + cont);
                    if(cont.contains("WEBVIEW")) 
                       driver.context(cont);
                       System.out.println("current context :"+cont);
                     else 
                       System.out.println("Opps");
                    
                
            catch (InterruptedException e) 
                e.printStackTrace();
           
    

我希望输出作为 Native App 和应用程序的 WebView,但实际输出只是获取 Native App。

【问题讨论】:

你能发布 adb logcat 日志吗? gist.github.com/gohilniks/cc688f55fd495b94f34fefaa02f34353 这是日志文件 您可以发布您正在设置的所需功能吗?另外,你是如何初始化驱动的 gist.github.com/gohilniks/e2ab818b68266cb99cfca305e250745b 这是代码示例的链接 【参考方案1】:

请让您的开发人员将 setWebContentsDebuggingEnabled 设置为 true。参考以下链接 https://developer.android.com/reference/android/webkit/WebView.html#setWebContentsDebuggingEnabled(boolean)

【讨论】:

【参考方案2】:

ios

能够通过 safari 更改上下文。

但不要从本机应用安装设备的 web 视图更改上下文

【讨论】:

以上是关于Appium 不显示 webview 上下文,它只显示本机应用程序上下文。如何获取 webview 上下文?的主要内容,如果未能解决你的问题,请参考以下文章

Appium 驱动程序没有 WEBVIEW 上下文

appium上下文切换webview调试以及chromedriver/键盘等报错问题解决

无法在 iOS Appium 测试(AWS Device Farm)上切换到 WebView 上下文

Appium之编写H5应用测试脚本(切换到Webview)

APPIUM ANDROID 混合应用程序:在混合应用程序中从本机导航到 Web 视图时,无法将驱动程序上下文获取为“WEBVIEW”

appium不能获取webview内容的解决办法