如何在使用RemoteWebDriver客户端对象启动Sauce测试后检测网格请求的网络超时?我有一个场景,我希望我的框架能够捕获,这就是当连接到SauceLabs的连接工作但连接失败时。换句话说,这是一个网络场景,我的Selenium测试发送一个浏览器.get()并在SauceLabs中用新的URL打开一个新的浏览器然后,由于网络问题,后续的JSON数据包失败并且测试似乎挂起。我知道问题是什么,但我只是希望我的单元测试框架报告网络问题。现在,当这种情况发生时,RemoteWebDriver将无限期地超时,这是不可接受的。
我知道解决这个问题需要了解当RemoteWebDriver客户端最初尝试将JSON命令发送到Grid Hub时客户端超时如何工作。
我知道我可以在启动Grid时指定超时但类似的选项似乎不在客户端?
Hub start :- java -jar /tools/grid/selenium-server-standalone-2.35.0.jar
-role hub -maxSession 20 -browserTimeout 240
-remoteControlPollingIntervalInSeconds 180 -sessionMaxIdleTimeInSeconds 240
-newSessionMaxWaitTimeInSeconds 250 -timeout 30
答案 0 :(得分:0)
在Sauce端设置空闲超时可能有助于此:http://saucelabs.com/docs/additional-config#idle-timeout
如果没有从Selenium脚本收到命令,则此期望功能(默认设置为90秒)超时。 虽然它无法直接检测到网络问题,但这可能会阻止您的会议记录被阻止的响应占用。
您也可以从Sauce Connect(https://saucelabs.com/docs/connect)中受益,这是一个免费的独立Java实用程序,可让您测试防火墙资源。 Connect还会检查丢弃的数据包,并会自动重新发送它们(直到某个点),以尝试重新建立连接。