gpt4 book ai didi

webdriver - 如果等待插槽空闲,Grid Hub http 客户端超时

转载 作者:行者123 更新时间:2023-12-03 08:18:08 24 4
gpt4 key购买 nike

有没有办法查询我的网格集线器 (2.6.0) 以查看是否有空闲插槽可用于特定的所需功能?

示例:

Grid Hub 网页位于

http://localhost:4444/grid/console

正确显示 1 个请求应等待插槽空闲,以便测试可以在当前请求完成后继续:


Grid Hub 2.6.0

WebDriverRemoteProxy 监听 http://192.168.3.15:5523/wd/hub

测试 session 在 300 秒后超时。

最多支持 1 个并发测试

1 个请求等待一个空位。

  • {platform=ANY, javascriptEnabled=true, cssSelectorsEnabled=true, browserName=firefox, nativeEvents=false, rotatable=false, takesScreenshot=true, version=}

查看配置


但是集线器没有返回某种它应该保留并等待的 json 通知,而是不返回任何内容,客户端连接可能只是超时(取决于您使用的 http 客户端库)。

我正在使用 ruby​​ 绑定(bind),但我可以按照以下步骤使用普通 curl 重现错误:

第 1 步。服务器中心和节点设置:

我的 Hub 设置(在 ubuntu 服务器上)

java -jar selenium-server-standalone.jar -role hub

我的节点设置(在 windows xp 机器上):

java -jar selenium-server-standalone.jar -role webdriver -hub $HUBURL -port 5522 -maxSession 1 -browser "maxInstances=1,browserName=firefox"

请注意,maxSession 和 maxInstances 有意设置为 1,以便轻松重现该问题。

第 2 步。运行一些持续时间较长的测试以占用第一个也是唯一可用的插槽

(为了举例)

第 3 步。使用此 curl 请求模拟另一个测试的运行:

curl -L --max-redirs 20 -v -i -H "Accept: application/json" -X POST http://localhost:4444/wd/hub/session -d '{"desiredCapabilities":{"javascriptEnabled":false,"version":"","rotatable":false,"takesScreenshot":true,"cssSelectorsEnabled":true,"browserName":"firefox","nativeEvents":false,"platform":"ANY"}}'

结果:

连接被搁置,没有服务器消息表明发生了什么,一条 json 消息告诉你正在等待空闲插槽应该这样做。在某些 http 库上,这将像目前在 ruby​​ gem 'selenium-webdriver' <= 2.6.0

上那样简单地超时

所以我需要一种方法来查询是否有空闲插槽(用于特定的所需功能)以避免客户端超时错误。

我检查了 JsonWireProtocol 但找不到请求该信息的路径。 JsonWireProtocol

最佳答案

显然 ruby​​ 客户端不能等待并且会在低级别超时。

幸运的是,您可以让 Grid2 在一定时间后抛出 RuntimeException:

Changing Maximum Wait Time for New Session

您可以在启动网格中心时以毫秒为单位传递该参数:-newSessionWaitTimeout 25000

java -jar selenium-server-standalone.jar -role hub -newSessionWaitTimeout 25000

使用您提供的 curl 参数,您现在将看到,25 秒后您将获得:

{
"status":13,
"value":{
"message":"java.lang.RuntimeException: Request timed out waiting
for a node to become available."...
}

哪些是您可以在 ruby​​ 方面处理和处理的。

关于webdriver - 如果等待插槽空闲,Grid Hub http 客户端超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7474345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com