【问题标题】:Unable to find Webview on Real Android Device Running 5.1.1在运行 5.1.1 的真实 Android 设备上找不到 Webview
【发布时间】:2015-10-07 01:54:54
【问题描述】:

Webview 在带有运行版本 5.1.1 和 Appium 的 Real Android 设备的混合应用程序中不可用。

在相同的 android/Appium 版本上使用模拟器也可以正常工作。

【问题讨论】:

    标签: android selenium-webdriver appium


    【解决方案1】:

    Webview 应用程序在 Andriod 5 上显示为本机应用程序。如果您想以 webview 格式的代码自动化应用程序,请将自动化功能:automation-name 设置为 Selendroid,并将上下文设置为 webview。

    foreach(String context in driver.contexts())
    {
       if(context.contains("WebView"){
        driver.context = context;
        }
    }
    

    如果您没有 html 内容供屏幕查找选择器,请插入代码

    Console.Writeline(driver.pagesource).
    

    这样你也可以得到 html 来选择选择器

    【讨论】:

    • 我也这样做了。它适用于模拟器。但它不适用于真实设备
    • driver.contexts() 在真实设备的情况下仅包含本机应用程序。在模拟器的情况下,我可以将 webview 视为上下文之一。
    • 在设备上,您是否使用自动化名称作为 selendroid 运行测试?使用 seledriod 进行测试时,appium 需要应用路径中的 apk 文件。也设置它
    • 尝试设置相同但仍然无法在真实设备上运行。
    • 您在功能中设置的应用价值是多少?
    【解决方案2】:

    Android 中 webview 的要点

    1. WebView 需要 Android 4.4 或更高版本,即API 级别>=19

    2. 应启用 WebView 调试;开发者必须在 WebView 类启用 ‘setWebContentsDebuggingEnabled’标志。该标志可以调试加载到应用程序的任何 WebView 中的 Web 内容(HTML / CSS / JavaScript)。

    3. Appium 还在底层使用 Selendroid 来支持 4.4 之前的设备上的 webview。要使用 appium 的此功能,必须在传递给 Appium 服务器的所需功能中将“automationName”指定为“selendroid”。

    4. 如果我们正在测试的混合应用程序的构建方式支持最低 Android 版本 4.0.4(API 级别 14)和最高 Android 版本 4.3(API 级别 18),那么我们可以检查 webview 元素并执行我们使用 appium 的 selendroid 模式进行自动化测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-03
      • 1970-01-01
      • 2016-09-02
      相关资源
      最近更新 更多