【问题标题】:AutoIt browsed file successfully, but webdriver produced `UnreachableBrowserException' errorAutoIt 浏览文件成功,但 webdriver 产生 `UnreachableBrowserException' 错误
【发布时间】:2017-03-28 06:43:09
【问题描述】:

使用 controlFocus 方法:

ControlFocus("File Upload", "", "Edit1")
ControlSetText("File Upload", "", "Edit1", "C:\Test.2.0.war")
ControlClick("File Upload", "", "Button1"

AutoIt 成功浏览并在 Firefox 中打开了一个文件,但是显示了正确的文件名; Selenium webdriver 在此之后无法点击上传按钮,抛出错误:

UnreachableBrowserException: Error communicating with the remote browser.

使用的webdriver代码是:

Runtime.getRuntime().exec("D:\\AutoIT\\FileUpload.exe");
Thread.sleep(5000);

可能出了什么问题?

【问题讨论】:

  • 无需使用 Autoit,Selenium 支持文件上传,方法是在 web 元素 <input type=file> 上调用 sendKeys
  • Sendkeys 在所有情况下都不起作用。对于这个项目,它可以在 chrome 中运行,但不能在 Firefox 中运行。浏览并打开文件路径后,Firefox 禁用了上传按钮。 AutoIT 解决了这个问题
  • 可以使用 Firefox 上传文件,但根据浏览器和驱动程序的版本,您可能需要使用 executeScript 的解决方法来显示 <input> 或触发 @ 987654328@事件。

标签: java eclipse selenium-webdriver autoit


【解决方案1】:

造成此问题的主要原因是后台运行了多个 gecko 驱动程序。解决方法:转到任务管理器 (Ctrl + Alt + Delete),在进程选项卡中,在后台进程下,终止所有 gecko 驱动程序实例并重新运行 webdriver。这对我有用,消除了UnreachableBrowserException: Error communicating with the remote browser 错误

【讨论】:

    【解决方案2】:

    要添加到@AutoQA 不错的答案,最好在finally 子句(或@AfterClass)中使用driver.dispose() 来处理closing instances,或者制作一个脚本来结束这些实例,例如(对于窗户):

    taskkill /F /IM geckodriver.exe
    

    【讨论】:

      猜你喜欢
      • 2015-05-15
      • 1970-01-01
      • 2019-04-17
      • 2020-08-30
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多