2012-06-25 37 views
5

Tôi hiện đang chạy thử nghiệm của mình với RemoteWebDriver với Selenium Grid 2 thông qua các bộ TestNG. Điều này làm việc tốt với Firefox và IE. Bây giờ tôi đã thêm Chrome và các thử nghiệm chạy tốt, nhưng tôi luôn nhận được một ngoại lệ khi gọi driver.quit() sau tất cả các thử nghiệm của một bộ (hoạt động tốt cho FF và IE).Cách đóng ChromeDriver khi chạy trên Grid?

Các ngoại lệ trông như thế này:

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) 

Tôi đang sử dụng Selenium Version 2.24.1 và chromedriver.exe 21.0.1180.4

EDIT

Mã cho teardown:

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

Hoạt động hoàn hảo cho F F và IE với RemoteDriver và không có. Nhưng không phải cho chrome.

+0

Bạn có thể đăng mã trong thiết lập.Siêu chuẩnChromeSetup.tearDown –

+0

thêm thông tin trên tearDown không có gì lạ mắt – Tarken

+0

cùng một thiết lập & cùng một vấn đề ở đây- Tôi cũng nhận được thông báo os rằng chromedriver.exe không hoạt động nữa, khi tôi xác nhận Google Chrome đã bị giết. –

Trả lời

3

Đối mặt với cùng một vấn đề. Here là cách tôi giải quyết nó. Điều này có vẻ là một lỗi với phiên bản mới của trình điều khiển Chrome. Sử dụng phiên bản trước của trình điều khiển (20.0.1133.0) đã giải quyết vấn đề này cho tôi.

Kiểm tra driver download page.

+0

Tôi hiện đang đi nghỉ nên tôi không thể kiểm tra nó ;-) Khi tôi trở lại làm việc và nó hoạt động tôi sẽ chấp nhận câu trả lời của bạn. Cảm ơn – Tarken

2

Tôi thấy nguyên nhân của việc này có thể là bạn không đóng các trình duyệt đang hoạt động trước khi thoát khỏi Driver. Hãy thử đóng các cửa sổ, có thể là nguyên nhân của một số ngoại lệ, với mã sau:

Driver.Close(); 
Driver.Quit(); 

Điều này sẽ giải quyết được vấn đề của bạn.

+0

Tôi nhận được cùng một vấn đề, nhưng gọi Close() trước khi Quit() không giúp được gì. – legion

Các vấn đề liên quan