Appium(v1.4.16.1),第二次尝试时切换到WebView失败

时间:2016-01-31 14:50:24

标签: android selenium-webdriver appium selenium-chromedriver

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

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

  1. 启动Android设备>执行一些操作
  2. 切换上下文= WebView_1>执行一些操作
  3. 切换上下文= Native_App
  4. 切换上下文= WebView_1>执行一些操作
  5. 在步骤2和步骤#4中,它是相同的WebView_1,但内容不同。说:第2步打开html-1,第4步打开html-2。

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

      

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

         
        

    info:[debug]可用的上下文:NATIVE_APP,WEBVIEW_1     info:[debug]连接到支持chrome的webview     info:[debug]响应客户端并出现错误:{" status":13," value":{" message":"未知服务器 - 处理命令时发生了侧面错误。 (原始错误:我们已经运行了一个chromedriver实例)"," origValue":"我们已经运行了一个chromedriver实例"}," sessionId" :" 38904ff5-928a-4dc0-AC8A-c7bc5f6504e4"}

      

2 个答案:

答案 0 :(得分:1)

切换到webview,然后转向native_app会导致appium中的问题,我遇到了同样的问题,经过研究后我发现切换到webview时,chromedriver有时变得反应迟钝,appium等待chromedriver直到为appium定义超时因此出现这些问题,如何解决这个问题: 创建一个线程来监视chromedriver,当它挂起时,重新启动chromedriver。

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

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

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

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

希望这有帮助。

答案 1 :(得分:0)

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