Appium 驱动程序没有 WEBVIEW 上下文

Posted

技术标签:

【中文标题】Appium 驱动程序没有 WEBVIEW 上下文【英文标题】:Appium driver has no WEBVIEW context 【发布时间】:2018-04-17 17:42:04 【问题描述】:

我正在为在真实 android 设备上运行的 Chrome 浏览器编写 Appium 测试。 这段代码:

Set<String> contextNames = driver.getContextHandles();
for (String contextName: contextNames) 
    System.out.println(contextName);

...仅返回 NATIVE_APP 和 CHROMIUM 上下文,启用 WEBVIEW 缺少什么? 或者至少,你能指定谁负责提供上下文吗? 谢谢!

Appium 1.7.1 / Selenium / Java

public static AndroidDriver<AndroidElement> capabilities() throws MalformedURLException


    AndroidDriver<AndroidElement>  driver;
    DesiredCapabilities capabilities = new DesiredCapabilities();

    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Device");
    capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");

    driver = new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

    return driver;

【问题讨论】:

最新版本的 chromium 或最新版本的 android 甚至 webview 都显示原生元素,使用哪个版本的 android 设备? 三星 Galaxy S6 与 Android 7.0 是的,如果您使用的是android 7.0,则无需切换上下文,您可以编写本机脚本 【参考方案1】:

通过 PlayStore 更新您 Android 设备的 Android System WebView

使用新的 UIautomator,您无需将驱动程序切换到 webview。它具有识别 webView 中元素的内置功能。

您还可以使用 UIAutomator 在 Android 6.0+ 设备上查看 webView 中的元素,就像查看原生元素一样。

【讨论】:

以上是关于Appium 驱动程序没有 WEBVIEW 上下文的主要内容,如果未能解决你的问题,请参考以下文章

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

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

driver.getContexts 中缺少 WEBVIEW 上下文

使用 Appium 进行测试时,Webview 上下文不再显示

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

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