java - 如何为 Selenium Grid 中的 session 提供无限空闲时间,但清理断开

我有一个使用以下配置的 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 类打开连接的 Java 代码。该代码对驱动程序进行了多次调用,然后暂停了未知时间(30 秒 - 1 小时)。我不想关闭 session ,因为在唤醒时,进程需要非常快速地使用react。

将超时设置为 -1 一切正常。该进程将无限期地与 session (和浏览器)保持连接。不幸的是,当自动服务决定时,该进程被随机终止。 节点识别客户端关闭:

selenium deleted due to client timeout

但是 session 没有被清理!无限超时使它们保持 Activity 状态,并且网格不会释放它们以供进一步使用。

如何使用 selenium 配置解决这个问题?

构建调用“driver.quit()”以释放 session 的进程关闭 Hook 不是一种选择。

感谢您的帮助!

最佳答案

您是否注意到配置中的“cleanUpCycle”:2000 设置? 这意味着集线器将在 2000 毫秒内自行清理!

关于java - 如何为 Selenium Grid 中的 session 提供无限空闲时间,但清理断开连接的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33436626/

相关文章:

xaml - 在 UWP 应用程序中覆盖来自 Generic.xaml 的资源

jakarta-ee - Mybatis:log4j:WARN 找不到记录器的附加程序 (org.a

python - 如何在 PLY 中做一个 IF 语句?

jsp - 带有 Tomcat 的 Intellij IDEA HotSwap 适用于类,但不适用于

python - 在 OpenGL 中的 3D 模型后面绘制背景视频

pdf - 有没有一种方法可以自动化/编写脚本(例如 perl)标记的 pdf 文件以查看它是否符合

ios - AVSampleBufferDisplayLayer : change videoGra

python - 使用来自用户的 url 的服务器端 urllib2.urlopen 的安全注意事项

c# - 运行已编译的 C# 程序 (.exe) 的要求

python - flask 迁移 : Alembic converting choices int