0

我通过 webdriver.io 在 node.js 环境中使用 selenium + phantomjs。由于某种原因,会话会在一段时间后结束。Selenium 仍在运行,但在其资源中心,没有更多的活动会话。我怎样才能防止这种情况?

4

2 回答 2

0

默认情况下,Selenium Hub 会超时任何非活动会话,以便为其他请求释放资源。您可以通过在启动 Hub 时进行设置来禁用此功能timeout=0,无论是作为命令行参数还是通过 JSON 配置,具体取决于您启动它的方式。

请记住,如果客户端在禁用超时的情况下崩溃,则该实例将继续使用,并且不可用于新会话。

来源:https ://code.google.com/p/selenium/wiki/Grid2#Optional_parameters

于 2015-05-11T16:08:53.110 回答
0

如果您不想将全局超时延长到无穷大,则需要在会话超时之前执行命令。

const driverTimeout = 60*1000;

// this interval should run before session expired and keep it alive.
const handleNumber = setInterval(() -> driver.getOrientation(), driverTimeout - 1000);

/** do some long async logic **/

// then stop the interval
clearInterval(handleNumber);

查看更多关于此
https://l18.me/how-to-keep-alive-appium-driver-da9227b2fa

于 2019-01-22T12:26:04.687 回答