【问题标题】:Appium (v1.4.16.1), Switch to WebView fails when i try a second timeAppium (v1.4.16.1),当我第二次尝试时切换到 WebView 失败
【发布时间】:2016-05-08 23:54:38
【问题描述】:

Appium (v1.4.16.1),当我第二次尝试切换到 WebView 时,切换到 WebView 失败。有什么我应该考虑的吗?

请参考以下在 Android 上使用 Appium 的用例-

  1. 启动 Android 设备 > 执行一些操作
  2. 切换上下文 = WebView_1 > 执行一些操作
  3. 切换上下文 = Native_App
  4. 切换上下文 = WebView_1 > 执行一些操作

在Step#2和Step#4中,是同一个WebView_1,但是内容不同。说:第 2 步打开 html-1,第 4 步打开 html-2。

问题:我无法在第 4 步中切换上下文。

....下面是一些错误日志

信息:[调试] 可用上下文:NATIVE_APP、WEBVIEW_1 信息:[调试] 连接到 chrome 支持的 webview 信息:[调试]响应客户端错误:{“状态”:13,“值”:{“消息”:“处理命令时发生未知的服务器端错误。(原始错误:我们已经有一个chromedriver实例running)","origValue":"我们已经有一个 chromedriver 实例正在运行"},"sessionId":"38904ff5-928a-4dc0-ac8a-c7bc5f6504e4"}

【问题讨论】:

    标签: android selenium-webdriver appium selenium-chromedriver


    【解决方案1】:

    切换到 webview 然后到 native_app 会在 appium 中广泛出现问题,我遇到了同样的问题,经过研究我发现在切换到 webview 时,chromedriver 有时会变得无响应,并且 appium 会等待 chromedriver 直到为 appium 和因此出现这些问题,如何解决这个问题: 创建一个线程来监视 chromedriver,当它挂起时,重新启动 chromedriver。

    现成的解决方案:从https://github.com/mi2pankaj/chromeDriverHandler下载chromedriverhandler.jar,添加到你的项目中,

    在 beforeTest/beforeClass 或测试开始时使用它: ChromedriverHandler.chromeDriverHandlerThread().start();

    在 afterTest/afterClass 或测试结束时使用它: ChromedriverHandler.chromeDriverHandlerThread().stop();

    注意:您可能需要将这些添加到您的项目中:apache 的 httpclient-4.3.1.jar、httpcore-4.3.jar 和 json 简单 jar:json-20080701.jar

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      当我创建 Selenium WebDriver / RemoteWebDriver 的第二个实例并尝试连接到 Appium 服务器时,我遇到了完全相同的错误,而没有准确地关闭第一个实例。 Appium 在这方面有点挑剔。

      【讨论】:

        猜你喜欢
        • 2020-08-17
        • 2012-05-25
        • 1970-01-01
        • 1970-01-01
        • 2013-07-20
        • 1970-01-01
        • 1970-01-01
        • 2015-10-11
        • 2022-08-15
        相关资源
        最近更新 更多