org.openqa.selenium.remote.SessionNotFoundException 对于 ChromeDriver

org.openqa.selenium.remote.SessionNotFoundException for ChromeDriver

我正在尝试使用 chrome 驱动程序执行一些测试用例,但在 4 个测试用例中只有 1 个被执行,其余三个我得到 SessionNotFoundException。我在门户网站上搜索了类似的问题,但它们都与 Internet Explorer 有关,但我 运行 我正在测试 chrome 驱动程序。 Selenium 版本 - 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)

我更改了一些 xpath,现在程序不会抛出任何异常。我真的无法理解,如果 xpath 错误,那么我应该收到 NoSuchElementException 而不是 SessionNotFoundException。我试图找到一个关于为什么我得到错误异常的答案,但直到现在还没有得到明确的答案。有知道的请分享信息

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

...........

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

..........

替换为

...........

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

..........

并解决了这个问题。

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

[BaseDriver] 正在关闭,因为我们等待命令 60 秒<br> [调试] [Android驱动程序] 关闭 Android 驱动程序

在我的例子中,我的自动化循环超过 60 秒,以便应用程序完成其具有网络依赖性的任务。

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

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