Java 在电网上运行时如何关闭ChromeDriver?

Java 在电网上运行时如何关闭ChromeDriver?,java,webdriver,testng,selenium-grid,selenium-chromedriver,Java,Webdriver,Testng,Selenium Grid,Selenium Chromedriver,我目前正在通过TestNG套件使用RemoteWebDriver和Selenium Grid 2运行测试。这在Firefox和IE上运行良好。现在我添加了Chrome,测试运行良好,但在对套件进行所有测试后调用driver.quit()时,我总是会遇到异常(对FF和IE运行良好) 例外情况如下所示: Error communicating with the remote browser. It may have died. sun.reflect.NativeConstructorAccesso

我目前正在通过TestNG套件使用RemoteWebDriver和Selenium Grid 2运行测试。这在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();
}

适用于FF和IE,带RemoteDriver和不带RemoteDriver。但不适用于chrome。

我认为原因可能是您在退出
驱动程序之前没有关闭活动浏览器。使用以下代码尝试关闭窗口,这可能是导致某些异常的原因:

Driver.Close();
Driver.Quit();
这应该可以解决你的问题。

也面临同样的问题。我就是这样解决的。这似乎是新版Chrome驱动程序的一个bug。使用以前版本的驱动程序(20.0.1133.0)为我解决了这个问题


检查一下

你能在setups.standardcromesetup.tearDown中发布代码吗?在tearDown中添加了信息。这里没有什么fancysame设置和相同的问题-我还收到一条操作系统消息,当我确认Google Chrome被杀死时,chromedriver.exe不再工作。我收到了相同的问题,但在退出()之前调用Close()没有帮助。我目前正在休假,因此无法测试;-)当我回到工作岗位,工作顺利时,我会接受你的回答。谢谢