kubernetes中的Selenium-仅允许本地连接

时间:2019-06-20 21:47:23

标签: java selenium selenium-webdriver kubernetes selenium-chromedriver

我正在尝试运行一个运行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");

这是我在日志中看到的。

enter image description here

1 个答案:

答案 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!