ChromeDriver的org.openqa.selenium.remote.SessionNotFoundException

时间:2015-03-10 17:45:16

标签: java google-chrome selenium selenium-webdriver webdriver

我正在尝试使用crome驱动程序执行一些测试用例但是在4个测试用例中只有1个正在执行,而对于其余三个我得到了SessionNotFoundException。我在门户网站上搜索了类似的问题,但所有这些问题都与Internet Explorer有关,但我正在运行我对crome驱动程序的测试。 硒版本 - 2.42.2

Exception in thread "main" org.openqa.selenium.remote.SessionNotFoundException: no such session
(Driver info: chromedriver=2.9.248315,platform=Windows NT 6.1 SP1 x86) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 128 milliseconds
Build info: version: '2.42.2', revision: '6a6995d', time: '2014-06-03 17:42:30'
System info: host: 'Admin-PC', ip: '10.0.0.6', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_31'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, chrome= {userDataDir=C:\Users\Admin\AppData\Local\Temp\scoped_dir4568_27180},  takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true,  version=41.0.2272.76, platform=XP, browserConnectionEnabled=false,  nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true,  webStorageEnabled=true, browserName=chrome, takesScreenshot=true,  javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: 0fcb3e702dd1c8a23261b902625df216
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:162)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:614)
at   org.openqa.selenium.remote.RemoteWebDriver.close(RemoteWebDriver.java:463)
at ResumeUpdate.Screen_1_Monster.operation(Screen_1_Monster.java:224)
at ResumeUpdate.Screen_1_Monster.main(Screen_1_Monster.java:341)

3 个答案:

答案 0 :(得分:1)

我更改了一些xpath,现在程序不会抛出任何异常。我真的无法承认,如果xpath是错误的,那么我应该重新使用NoSuchElementException而不是SessionNotFoundException。我试图找到一个答案,为什么我得到一个错误的例外,但直到现在还没有得到一个明确的答案。任何了解它的人请分享信息

答案 1 :(得分:0)

我最近也遇到过这个问题,在我的情况下,浏览器在测试运行之前就已关闭了。例如

...........

"Login page" - {
  "should have title" in {
    pageTitle should be ("Login")
  }
  close()
}

..........

替换为

...........

"Login page" - {
  "should have title" in {
    pageTitle should be ("Login")
    close()
  }
}

..........

修正了问题。

答案 2 :(得分:0)

如果Appium在60秒内没有收到下一个命令,它就会关闭。

[BaseDriver] Shutting down because we waited 60 seconds for a command
[debug] [AndroidDriver] Shutting down Android driver

在我的情况下,我的自动化循环超过60秒,以便应用完成它的任务,该任务具有网络依赖性。

您可以通过向功能添加“newCommandTimeout”来避免这种情况,以增加超时持续时间,如下所示: capabilities.setCapability("newCommandTimeout", 90); //or seconds

或者您可以添加try / catch并记录更有意义的消息。