Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java kubernetes中的Selenium-仅允许本地连接_Java_Selenium_Selenium Webdriver_Kubernetes_Selenium Chromedriver - Fatal编程技术网

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

Java kubernetes中的Selenium-仅允许本地连接,java,selenium,selenium-webdriver,kubernetes,selenium-chromedriver,Java,Selenium,Selenium Webdriver,Kubernetes,Selenium Chromedriver,我正在尝试运行一个运行Selenium的应用程序,以便拍摄一些屏幕截图 当我在docker compose文件中运行应用程序时,一切正常,但是,当我尝试在云中的kubernetes集群中运行时,我不断得到以下消息:只允许本地连接,并且似乎没有建立连接。在我看来,这个问题是由于网络和selenium不允许非本地主机的连接,kubernetes就是这样 我正在使用image:selenium/standalone-chromeimage(在我的图表中,selenium/standalone-chro

我正在尝试运行一个运行Selenium的应用程序,以便拍摄一些屏幕截图

当我在docker compose文件中运行应用程序时,一切正常,但是,当我尝试在云中的kubernetes集群中运行时,我不断得到以下消息:
只允许本地连接
,并且似乎没有建立连接。在我看来,这个问题是由于网络和selenium不允许非本地主机的连接,kubernetes就是这样

我正在使用image:
selenium/standalone-chrome
image(在我的图表中,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");
这是我在日志中看到的


您需要为chromedriver可执行文件设置白名单ips参数。您可以通过为docker chrome节点图像设置env
JAVA\u OPTS
来实现此目标:

chrome:
图片:selenium/node chrome:3.141.59
容器名称:chrome
取决于:
-硒轮毂
环境:
-集线器\主机=selenium集线器
-集线器端口=4444
-JAVA_OPTS=-Dwebdriver.chrome.whitelistedIps=
仅供参考。
chromeOptions.addArguments(“--whitelisted ips=”)将参数传递到chrome而不是chromedriver

这是唯一的信息。更多信息:。@Peter1982我在那里找不到我的问题的答案。它彻底解释了chrome版本控制,并解释了消息的含义,但我不知道如何让我的远程selenium pod侦听来自其他pod的传入连接。另外,我理解为什么会有限制,但应该使用
--白名单ips
标志来取消限制。在selenium测试中,您的baseUrl是什么?您是使用本地kubernetes IP地址还是通过pod访问服务?我使用的是服务。我还尝试在集群虚拟机的外部设备上安装selenium,在那里使用了IP地址,并且遇到了同样的问题。事实证明,这个
--白名单ips=
选项似乎还没有在[chromeOptions][1]中实现。因此,我将selenium容器的命令更改为:command:[“java”]args:[“-Dwebdriver.chrome.whitelistedIps=”,“-Dwebdriver.chrome.driver=/usr/bin/chromedriver”,“-jar”,“/opt/selenium/selenium server standalone.jar”。。。。[1]: