主机 header 或原点 header 已指定且不是 selenium 网格的本地主机

Host header or origin header is specified and is not localhost for selenium grid

我正在尝试使用最新的 chrome 和 chromedriver 设置硒网格。我在尝试 运行 测试

时收到以下错误
Message: OpenQA.Selenium.WebDriverException : Unexpected error. Host header or origin header is specified and is not localhost.

在节点机器上,我看到 chrome 浏览器打开,但它立即关闭,我得到这个错误:

[1557513678.682][SEVERE]: Rejecting request with host: <hub_IP_address>:4444

有没有人在使用 selenium 网格时遇到过这个问题?我正在使用:

这是我启动集线器的命令:

java -jar selenium-server-standalone-4.0.0-alpha-1.jar -role hub -hubConfig config.json

这是我启动节点的命令:

java -Dwebdriver.chrome.driver="C:\...\Browsers\ChromeDirectory\chromedriver.exe" -Dwebdriver.ie.driver="C:\...\Browsers\IEDirectory\x86\IEDriverServer.exe" -jar -Dwebdriver.edge.driver="C:\...\Browsers\Edge\MicrosoftWebDriver.exe" -jar "C:\...\selenium-server-standalone-4.0.0-alpha-1.jar" -role node -hub "http://<hub_IP_address>:4444/grid/register/" -nodeConfig "C:\...\config.json"

我尝试在 config.jsons 中使用 "host" 属性。我试着把实际的 IP 地址和本地主机。但是集线器和节点显然是不同的机器,所以把本地主机让他们无法连接。但是当我没有本地主机时,它说需要指定为本地主机?我很混乱!!主机 属性 中应该包含什么?

我看到人们谈论量角器的环回 属性,但我没有使用量角器。我尝试将 "loopback":true 放入我的节点和集线器 config.json 文件中,但它似乎没有什么不同。

更新: 我能够使用集线器的 4.0 alpha jar 和节点的旧 3.8 jar 成功地将网格设置为 运行。 All Still on Java 8. 有点意思。

通过降级到 3.8.1 selenium grid jar 并安装 JDK 8 而不是 12,我能够让 selenium grid 工作。我需要获得 java 8 的原因在this other question。我使用相同的 chrome 驱动程序和启动命令

您可以尝试添加这些开关:--whitelisted-ips --allowed-origins=''*

尝试使用命令 运行 您的节点:

java -Dwebdriver.chrome.driver="C:\...\Browsers\ChromeDirectory\chromedriver.exe --whitelisted-ips --allowed-origins='*'" -Dwebdriver.ie.driver="C:\...\Browsers\IEDirectory\x86\IEDriverServer.exe" -jar -Dwebdriver.edge.driver="C:\...\Browsers\Edge\MicrosoftWebDriver.exe" -jar "C:\...\selenium-server-standalone-4.0.0-alpha-1.jar" -role node -hub "http://<hub_IP_address>:4444/grid/register/" -nodeConfig "C:\...\config.json"