我正在尝试使用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)
答案 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并记录更有意义的消息。