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

Posted

技术标签:

【中文标题】APPIUM ANDROID 混合应用程序:在混合应用程序中从本机导航到 Web 视图时,无法将驱动程序上下文获取为“WEBVIEW”【英文标题】:APPIUM ANDROID Hybrid App: Not able to get driver context as 'WEBVIEW' when navigating to the web view from native in Hybrid app 【发布时间】:2020-01-20 11:30:09 【问题描述】:

我需要在 Hybrid 应用程序中自动执行 Web 视图。本机部分自动化进展顺利。在本机视图中单击其中一个按钮后,应用程序将进一步导航到 Chrome 浏览器并打开 Web 视图。现在,问题是我无法使用 driver.getContextHandles() 在字符串集中获取“WEBVIEW”。即使在导航到 webview 之后,我也只能获得“NATIVEAPP”的价值。请让我知道我哪里出错了,或者有其他相同的方法。

尝试使用 driver.getContextHandles() 来获取所有上下文,然后运行“for loop”将驱动程序设置为 WEBVIEW 上下文以在 webview 上执行进一步的操作。

    //Below code is after clicking on the button on native view which 
    //navigate to the web view in the chrome browser
    Set<String> contextNames = driver.getContextHandles();
    System.out.println(contextNames);
    for (String conName : contextNames) 
    System.out.println(conName);
    if (conName.contains("WEBVIEW"))
            
    driver.context(conName);
    
    

    //clicking action in the webview in browser
    driver.findElement(By.xpath(XYZ)).click();

我希望 driver.getContextHandles() 值为:NATIVEAPP,WEBVIEW。但我只得到 NATIVEAPP 作为输出。

【问题讨论】:

此权限是否在应用配置的 setWebContentsDebuggingEnabled 中启用? 需要与开发团队确认。 【参考方案1】:

为了让您能够在应用程序中进行任何类型的 webview 调试。需要通过将这个键添加到应用程序的配置中来启用 Web 视图调试选项:setWebContentsDebuggingEnabled 并将其值设置为 true。

【讨论】:

以上是关于APPIUM ANDROID 混合应用程序:在混合应用程序中从本机导航到 Web 视图时,无法将驱动程序上下文获取为“WEBVIEW”的主要内容,如果未能解决你的问题,请参考以下文章

解决android SDK不能更新,appium测试混合app无法返回webview问题

如何实现appium移动端的新特性:getContexts for android混合自动化

你可以同时使用 Protractor 和 Appium 来测试混合应用程序吗?

你对Appium了解多少?

Appium简介

1.appium介绍