我正在尝试运行一个运行Selenium的应用程序以获取一些屏幕截图。
当我在docker compose文件中运行应用程序时,一切正常,但是,当我尝试在云中的kubernetes集群中运行时,我不断收到以下消息:Only local connections are allowed
,但没有连接似乎已建立。在我看来,问题是由于网络和Selenium不允许的连接,而Kubernetes就是这种情况。该连接不是来自本地主机。
我正在使用图像:selenium/standalone-chrome
图像(我的图表中为硒/独立铬:3.141),其中chrome驱动程序显然是:2.43.600233
我一直在尝试使用--whitelisted-ips选项来解决这个问题,但无济于事。我尝试过:
chromeOptions.addArguments("--whitelisted-ips");
chromeOptions.addArguments("--whitelisted-ips=");
chromeOptions.addArguments("--whitelisted-ips=''");
这是我的一些Java代码。
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.TakesScreenshot;
chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--verbose");
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--whitelisted-ips=");
chromeOptions.addArguments("--disable-gpu");
这是我在日志中看到的。
答案 0 :(得分:0)
您需要为chromedriver可执行文件设置whitelisted-ips参数。您可以通过为docker chrome-node映像设置env JAVA_OPTS
来实现它:
chrome:
image: selenium/node-chrome:3.141.59
container_name: chrome
depends_on:
- selenium-hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
- JAVA_OPTS=-Dwebdriver.chrome.whitelistedIps=
菲。
chromeOptions.addArguments("--whitelisted-ips=");
将参数传递给chrome而不是chromedriver!