java - Selenium 3.12 在 driver.quit() @ FireFox 60/Win 7 Home Premium/Java 10.0.1/GeckoDriver 0.20.1 上显示错误

标签 java selenium firefox selenium-webdriver geckodriver

我的电脑:

Win 7/64 位 - 已安装所有更新
FireFox 60.0/64 位
Java 10.0.1
Selenium 3.12
壁虎驱动程序 0.20.1/64 位
eclipse 4.7.3a

JAVA-源代码:

public class SeleniumFireFoxMinimal1 {                                                             
    public static void main(String[] args) throws InterruptedException {                           
        System.setProperty("webdriver.gecko.driver", "e:\\geckodriverwrapper.bat");                       
        WebDriver driver = new FirefoxDriver();                 
        driver.get("http://www.toolsqa.com");                                                      
        driver.quit();                                                                             
    }                                                                                              
}

geckodriverwrapper.bat:

@ECHO OFF  
ECHO Starting geckodriver: %0 %*  
E:\geckodriver.exe --log trace %* > NUL 2>&1  

Eclipse 控制台输出:

Starting geckodriver: E:\geckodriverwrapper.bat --port=27751 -b "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
Mai 12, 2018 1:14:15 VORM. org.openqa.selenium.remote.ProtocolHandshake createSession
INFORMATION: Detected dialect: W3C

Firefox 窗口关闭 15 秒后显示以下行:

Mai 12, 2018 1:14:37 VORM. org.openqa.selenium.os.OsProcess destroy
INFORMATION: Unable to drain process streams. Ignoring but the exception being swallowed follows.
org.apache.commons.exec.ExecuteException: The stop timeout of 2000 ms was exceeded (Exit value: -559038737)
    at org.apache.commons.exec.PumpStreamHandler.stopThread(PumpStreamHandler.java:295)
    at org.apache.commons.exec.PumpStreamHandler.stop(PumpStreamHandler.java:181)
    at org.openqa.selenium.os.OsProcess.destroy(OsProcess.java:135)
    at org.openqa.selenium.os.CommandLine.destroy(CommandLine.java:153)
    at org.openqa.selenium.remote.service.DriverService.stop(DriverService.java:222)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:95)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:600)
    at org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:443)
    at at.xxxxxxx.work.SeleniumFireFoxMinimal1.main(SeleniumFireFoxMinimal1.java:40)
Mai 12, 2018 1:14:37 VORM. org.openqa.selenium.os.OsProcess destroy
SCHWERWIEGEND: Unable to kill process Process[pid=4320, exitValue=1]

像这样的其他 Selenium 命令工作得很好:

element = driver.findElement(By.id("sinp"));              
element.clear();                                                
element.sendKeys("black");                                      
element.submit();                                                                                                                                                           

这只是我 PC 上的问题吗?

driver.quit() 在 InternetExplorer 上正常工作。

也许我们必须重新打开这个问题?:

https://github.com/SeleniumHQ/selenium/issues/4678

https://github.com/mozilla/geckodriver/issues/954

https://bugzilla.mozilla.org/show_bug.cgi?id=1401109

现在(2018 年 5 月 15 日)我也在这里发布了它:

https://github.com/mozilla/geckodriver/issues/1272

最佳答案

我没有一个干净的解决方案,但有一个解决方法:我将 driver.quit() 更改为 driver.close()。 这通常用于关闭窗口。但如果它是最后一个窗口,它就可以工作。用

测试
  • 壁虎驱动程序 0.18.0
  • Java 1.8.0_65
  • Raspbian GNU/Linux 8(杰西)
  • Selenium 3.14.0
  • 火狐 52.9.0

关于java - Selenium 3.12 在 driver.quit() @ FireFox 60/Win 7 Home Premium/Java 10.0.1/GeckoDriver 0.20.1 上显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50305819/

相关文章:

java - 如何从字符串 "[ABC]"中删除[符号

selenium - 如何生成带有历史信息的诱惑报告。

java - 如何获取菜单选项的数量----Selenium

css - 几个 CSS3 关键帧在 Firefox 19 中不起作用/位置错误

java - 无法使用 Firefox 50 通过 SSL 连接到 Jetty 9 服务器

java - 如何在 Dropwizard 中使用 Jetty Continuations?

java - 我可以在二维数组中创建更多列吗?

java - 我怎样才能确保 Spring 一次构造一个 bean

java - 如何让 testng 监听器在 @AfterClass 注解之前运行?

javascript - 无法在 Firefox 上从 Javascript 提交表单