有没有办法防止硒自动终止空闲会话?

时间:2019-03-31 07:59:12

标签: selenium selenium-webdriver webdriver selenium-grid selenium-remotedriver

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

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

这是硒发送的消息,它有助于关闭一个空闲的浏览器。

func main() {
    fmt.Printf("%d, %d", aggregator(f())[0].(int), aggregator(f())[1].(int))
}

func aggregator(res ...interface{}) []interface{}{
    return res
}

func f () (int, int) {
    return 1,2 
}

如果任何人有任何潜在客户,我将非常感谢。目前,我只是每15分钟刷新一次浏览器以防止超时,但是感觉很糟糕。

1 个答案:

答案 0 :(得分:0)

此错误消息...

by.css

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

使用 Selenium Grid Hub / Node 配置和/或 RemoteWebdriver 实现可以观察到此问题。

如果您观察到INFO [ActiveSessions$1.onStop] - Removing session 70a1b8cbae6876cde7e66df13b3942d1 (org.openqa.selenium.chrome.ChromeDriverService) 中的-help,则默认 selenium-server-standalone-x.y.z.jar / -timeout设置为 1800

  • CLI命令:

    -sessionTimeout
  • 输出:

  

$>java -jar selenium-server-standalone-3.14.0.jar -help -timeout-sessionTimeout(以秒为单位):指定在服务器自动终止最近X秒钟内没有任何活动的会话之前的超时时间。然后将释放测试插槽,以供其他测试使用。通常用于照顾客户端崩溃。对于网格集线器/节点角色,还必须设置cleanUpCycle。

  • 默认值:1800

  • 快照:

timeout

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


解决方案

您可以按以下方式增加<Integer> / -timeout

-sessionTimeout