控制Selenium Grid中的chromedriver端口使用

时间:2018-01-12 14:11:04

标签: selenium selenium-chromedriver selenium-grid

我目前正在使用Selenium Grid运行Chrome测试,并使用默认的4444和5555端口在集线器和节点之间进行通信。 一切都运行正常,但我确实看到在selenium节点上启动了多个chromedrivers,每个chromedrivers都听一个看似随机(尽管可用)的端口号。

我使用命令

看到了这一点
netstat -tulpn | grep chromedriver

返回例如

tcp        0      0 127.0.0.1:18955         0.0.0.0:*               LISTEN      51665/chromedriver
tcp        0      0 127.0.0.1:17932         0.0.0.0:*               LISTEN      51365/chromedriver
tcp        0      0 127.0.0.1:34668         0.0.0.0:*               LISTEN      51206/chromedriver
tcp        0      0 127.0.0.1:43629         0.0.0.0:*               LISTEN      51219/chromedriver
tcp        0      0 127.0.0.1:5645          0.0.0.0:*               LISTEN      10353/chromedriver
tcp        0      0 127.0.0.1:48782         0.0.0.0:*               LISTEN      51221/chromedriver
tcp        0      0 127.0.0.1:26258         0.0.0.0:*               LISTEN      51271/chromedriver
tcp        0      0 127.0.0.1:19699         0.0.0.0:*               LISTEN      51308/chromedriver
tcp        0      0 127.0.0.1:36787         0.0.0.0:*               LISTEN      51207/chromedriver
tcp        0      0 127.0.0.1:28180         0.0.0.0:*               LISTEN      51663/chromedriver
tcp        0      0 127.0.0.1:29076         0.0.0.0:*               LISTEN      51295/chromedriver

通常情况下这是可以的,但偶尔他们会使用Xvnc使用的9500> 9599范围内的端口,在启动和停止vncservers时会导致错误。

有没有办法强制chromedriver使用或避免特定范围的端口?使用ChromeDriverService的现有答案似乎只是为了解决本地运行时的chromedriver端口问题,并将端口设置为单个特定值。

1 个答案:

答案 0 :(得分:0)

我对网格没有任何经验,但应该有chromedriver的方法,传递参数使用某些端口。我的不好,如果下面的命令不起作用。

- 测试 - 固定HTTPS端口

https://peter.sh/experiments/chromium-command-line-switches/#testing-fixed-https-port