Top Menu

Selenium Grid的各种超时设置

Selenium Grid里有各种超时,包括slot的和session的以及webdriver的

slot的超时设置

slot属于node下的子节点,一般Selenium Grid会根据cpu核心数量分配对应的slot槽位,每个slot槽位可以同时允许一个session运行。

有时候这个session会因为代码异常中断没有触发session销毁机制,导致session长期占用slot槽位,当所有slot槽位都满了以后,这个node的后续请求只能积压在queue中,导致node被阻塞。

为了解决这个问题,在grid的config文件中可以设置session-timeout来释放超时的slot槽位

以上设置表示当1秒内没有活动时自动释放slot槽位

设置slot超时除了可以解决代码异常中断的情况,还可以解决docker环境下session对应的container已经被释放但是session没有释放依旧占用slot的情况出现。

webdriver的超时设置

在session下的webdriver有一个超时设置,用于设置session内浏览器的超时行为,通过webapi进行设置

通过post以下json到{host}:{port}/session/{sessionId}/timeouts进行设置

get同样地址可以获取当前超时设置

这几个配置项的作用

  • implicit:设置find一个element时的等待时间
  • pageLoad:页面加载超时
  • script:异步时的等待时间

KnowMore

https://www.selenium.dev/documentation/grid/configuration/cli_options/#sessions

https://www.selenium.dev/documentation/grid/configuration/toml_options/

There are no comments yet

  • Hello, guest

Powered by WordPress. Designed by WooThemes