我有一个使用以下配置的selenium网格:
{
"port": 4444,
"newSessionWaitTimeout": 2000
}
和使用此配置的2个节点:
{
"capabilities": [{
"browserName": "chrome",
"platform": "LINUX",
"maxInstances": 8
}],
"configuration": {
"nodeTimeout": 120,
"port": 5555,
"hubPort": 4444,
"hubHost": "hubhost",
"nodePolling": 2000,
"registerCycle": 10000,
"register": true,
"cleanUpCycle": 2000,
"timeout": -1,
"browserTimeout": -1,
"maxSession": 8
}
}
我编写了一段通过RemoteWebDriver-Class打开连接的Java代码。代码对驱动程序执行多次调用,然后暂停未知时间(30s - 1h)。我不想关闭会话,因为在此过程中,流程需要做出快速反应。
将超时设置为-1,一切正常。该过程将保持连接到会话(和浏览器)无限时间。不幸的是,当自动服务决定时,该过程被随机杀死。 节点识别出客户端关闭:
由于客户端超时而删除了硒
但会议没有清理过!无限超时使它们保持活跃状态,并且网格不会将它们释放以供进一步使用。
如何使用selenium配置解决此问题?
构建一个调用" driver.quit()"的process-shutdown-hook。免费会议,不是一个选择。
感谢您的帮助!
答案 0 :(得分:0)
您是否注意到配置中的“ cleanUpCycle”:2000设置? 这意味着集线器将在2000毫秒内自行清理!