gpt4 book ai didi

java - 在 Grid 上运行时如何关闭 ChromeDriver?

转载 作者:搜寻专家 更新时间:2023-10-31 20:04:45 24 4
gpt4 key购买 nike

我目前正在通过 TestNG 套件使用带有 Selenium Grid 2 的 RemoteWebDriver 运行我的测试。这适用于 Firefox 和 IE。现在我添加了 Chrome 并且测试运行良好,但在套件的所有测试之后调用 driver.quit() 时我总是得到异常(适用于 FF 和 IE)。

异常看起来像这样:

Error communicating with the remote browser. It may have died.
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:188)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:472)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:476)
at org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:346)
at setups.StandardChromeSetup.tearDown(StandardChromeSetup.java:42)
19 lines not shown

Caused by Error communicating with the remote browser. It may have died.
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:467)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:476)
at org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:346)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101)
at $Proxy1.quit(Unknown Source)
at org.openqa.selenium.support.events.EventFiringWebDriver.quit(EventFiringWebDriver.java:194)
at org.openqa.selenium.remote.server.handler.DeleteSession.call(DeleteSession.java:42)
at org.openqa.selenium.remote.server.handler.DeleteSession.call(DeleteSession.java:1)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:150)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

我使用的是 Selenium 版本 2.24.1 和 chromedriver.exe 21.0.1180.4

编辑

拆解代码:

@AfterSuite
public void tearDown(){
driver.quit();
}

无论是否使用 RemoteDriver,都能在 FF 和 IE 中完美运行。但不适用于 chrome。

最佳答案

遇到了同样的问题。 Here我就是这样解决的。这似乎是新版 Chrome 驱动程序的一个错误。使用以前版本的驱动程序 (20.0.1133.0) 为我解决了这个问题。

检查 driver download page .

关于java - 在 Grid 上运行时如何关闭 ChromeDriver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11187172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com