5

我正在使用 selenium 来自动化与网站的一些交互。此过程涉及打开多个浏览器并让它们间歇性地执行操作。但是,偶尔会有很长的(> 1 小时)不作为,并且 selenium 似乎会在大约 30 分钟未被调用后自动终止浏览器会话。

我想将此超时设置为 7 小时左右,但我找不到任何方法。

这是 selenium 在关闭空闲浏览器时发送的消息。

13:06:35.277 INFO [ActiveSessions$1.onStop] - Removing session 70a1b8cbae6876cde7e66df13b3942d1 (org.openqa.selenium.chrome.ChromeDriverService)

如果有人有任何线索,我将非常感激。目前我只是每 15 分钟自动刷新一次浏览器以防止超时,但感觉很糟糕。

4

1 回答 1

7

此错误消息...

INFO [ActiveSessions$1.onStop] - Removing session 70a1b8cbae6876cde7e66df13b3942d1 (org.openqa.selenium.chrome.ChromeDriverService)

...表示已经启动/产生的新Chrome 浏览器会话已终止。

在Selenium Grid Hub/Node配置和/或RemoteWebdriver实现中观察到此问题。

如果你观察默认-help的/设置为selenium-server-standalone-x.y.z.jar1800 -timeout-sessionTimeout

  • CLI 命令:

    $>java -jar selenium-server-standalone-3.14.0.jar -help
    
  • 输出:

-timeout, -sessionTimeout: <Integer>in seconds : 指定服务器自动终止在过去 X 秒内没有任何活动的会话之前的超时时间。然后将释放测试槽以供另一个测试使用。这通常用于处理客户端崩溃。对于网格集线器/节点角色,还必须设置 cleanUpCycle。

  • 默认值:1800

  • 快照:

暂停

因此,您会看到超时,并且selenium 会在约 30 分钟未被调用后自动终止浏览器会话


解决方案

您可以按如下方式增加-timeout/ :-sessionTimeout

$>java -jar /path/to/selenium-server-standalone-3.14.0.jar -sessionTimeout 57868143
于 2019-04-03T13:24:07.703 回答