時にはwebDriver.quit()メソッドはメッセージなしで例外を返します。しかし、それはブラウザをうまく閉じます。それはグリッド上でのみ発生し、私はローカルマシンでこれを再現できませんでした。それは並列実行に関連しているかもしれませんが、わかりません。例外は無作為に見えますが、それは私が見つけ出さないことに夢中になります。webDriver.quit()はメッセージなしで例外を返します
テストの最後に、私のコードブロックは次のとおりです。
public void close() {
try {
webDriver.quit();
} catch (Exception ex) {
logger.error("Exception on closing webdriver", ex);
}
}
そして、エラーログは次のとおりです。
2016-04-17 20:18:02,169 ERROR [pool-1-thread-1] models.Browser - Exception on ?closing webdriver
org.openqa.selenium.WebDriverException: Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46'
System info: host: 'taylanderinbay.local', ip: '172.20.0.196', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.4', java.version: '1.8.0_77'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Capabilities [{applicationCacheEnabled=true, rotatable=false, handlesAlerts=true, databaseEnabled=true, version=45.0.2, platform=WINDOWS, nativeEvents=false, acceptSslCerts=true, webdriver.remote.sessionid=e64115cd-ba83-4e01-89b8-e5b16e7a4e0f, webStorageEnabled=true, locationContextEnabled=true, browserName=firefox, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: e64115cd-ba83-4e01-89b8-e5b16e7a4e0f
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_77]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_77]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_77]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_77]
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) ~[selenium-remote-driver-2.53.0.jar:?]
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) ~[selenium-remote-driver-2.53.0.jar:?]
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) ~[selenium-remote-driver-2.53.0.jar:?]
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:701) ~[selenium-remote-driver-2.53.0.jar:?]
at org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:526) ~[selenium-remote-driver-2.53.0.jar:?]
at com.dmall.uat.models.Browser.close(Browser.java:228) [classes/:?]
at com.dmall.uat.models.users.Visitor.closeBrowser(Visitor.java:214) [classes/:?]
at com.dmall.uat.test.TestContext.closeBrowsers(TestContext.java:48) [classes/:?]
at com.dmall.uat.test.StopOrCloseFixtures$1.evaluate(StopOrCloseFixtures.java:30) [classes/:?]
at com.dmall.uat.test.FreeUser$1.evaluate(FreeUser.java:23) [classes/:?]
at com.dmall.uat.test.FreeAccount$1.evaluate(FreeAccount.java:23) [classes/:?]
at com.dmall.uat.test.FailedTestRetry$1.evaluate(FailedTestRetry.java:29) [classes/:?]
at com.dmall.uat.test.TestContextInitializer$1.evaluate(TestContextInitializer.java:24) [classes/:?]
at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.12.jar:4.12]
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
at org.apache.maven.surefire.junitcore.pc.Scheduler$1.run(Scheduler.java:387) [surefire-junit47-2.18.1.jar:2.18.1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_77]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_77]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_77]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_77]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_77]
Caused by: org.openqa.selenium.remote.ScreenshotException: Screen shot has been taken
Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46'
System info: host: 'taylanderinbay.local', ip: '172.20.0.196', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.4', java.version: '1.8.0_77'
Driver info: driver.version: RemoteWebDriver
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:138) ~[selenium-remote-driver-2.53.0.jar:?]
... 22 more
Caused by: java.lang.InterruptedException
at java.lang.ProcessImpl.waitFor(Unknown Source) ~[?:1.8.0_77]
at org.openqa.selenium.os.ProcessUtils$ProcessWaiter.run(ProcessUtils.java:164) ~[selenium-remote-driver-2.53.0.jar:?]
at java.lang.Thread.run(Unknown Source) ~[?:1.8.0_77]
私は本当に任意のヘルプや提案を感謝しています。ありがとう
ドライバの互換性の問題がある可能性があります:firefox 45を使用しているようですが、チェンジログから見ると、セレン2.53でサポートされていません(https://github.com/SeleniumHQ/selenium/blob/master/dotnet/CHANGELOG ) –
それについては決して考えませんでしたが、それが理由かもしれません。 –
をダウングレードしてみます。44にダウングレードしても同じ例外が表示されます。 –