当我使用WebDriver运行Chrome浏览器时,我在控制台上收到以下消息。请让我知道如何解决它。
“在端口22582上启动ChromeDriver(v2.10.267521)”“仅限本地 允许连接。“
以下是我的示例代码:
public class Browserlaunch {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32 \\chromedriver.exe");
WebDriver driver = new ChromeDriver() ;
driver.get("http://webdunia.com");
driver.close();
driver.quit();
}
}
答案 0 :(得分:85)
这只是一条信息性消息。消息告诉您的是,chromedriver可执行文件只接受来自本地计算机的连接。
大多数驱动程序实现(确定Chrome驱动程序和IE驱动程序)都会创建一个HTTP服务器。语言绑定(Java,Python,Ruby,.NET等)都使用JSON-over-HTTP协议与驱动程序通信并自动化浏览器。由于HTTP服务器只是在开放端口上侦听由语言绑定生成的HTTP请求,因此只允许来自语言绑定的HTTP服务器连接来自同一主机上的其他进程。请注意,此限制不适用于浏览器可以与外部网站建立的连接;相反,它只是阻止来自其他网站的传入连接。
答案 1 :(得分:11)
我得到了完全相同的错误。我今天和这个问题争了几个小时。它似乎是由chromedriver和selenium-server-standalone版本之间的不匹配引起的。 config.js文件引用了一个具有chromedriver 2.9和selenium-server-standalone 2.35.0的目录。一旦我确定我们引用了2.10和2.42.2,就可以了。
答案 2 :(得分:8)
不一定是最佳做法,但我的环境是一个本地网络,其中有几台机器需要访问硒。
当运行chromedriver时,你可以像这样通过一个参数:
chromedriver --whitelisted-ips=""
这基本上会将所有IP列入白名单,当然并不总是理想的解决方案,并且对于生产环境要小心,但是你应该看到一个详细的警告:
启动ChromeDriver 2.16.333244 (15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca)在端口9515上所有远程 允许连接。请改用白名单!
充其量只是解决方法,但它有效。
答案 3 :(得分:4)
当我不得不修复一段时间没有看过的旧项目时,发生了这种情况。与该项目相关的chromedriver与我的chrome版本不兼容,因此当我更新chromedriver时它运行良好。
答案 4 :(得分:1)
这只是一条信息性消息。如果你的测试脚本和chromedriver在同一台机器上,那就没有任何意义,那么可以添加“whitelisted-ips”选项。你的测试运行正常。但是如果你在网格设置中使用chromedriver,这条消息将不会出现< / p>
答案 5 :(得分:1)
如果您使用不兼容的Selenium和ChromeDriver版本,则会出现此错误。
Maven项目的Selenium 3.0.1:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.0.1</version>
</dependency>
ChromeDriver 2.27:https://sites.google.com/a/chromium.org/chromedriver/downloads
答案 6 :(得分:1)
经过数小时的分析,读取了大量的日志和源代码,终于找到了问题。而且很容易解决。
在单行中:您需要将--whitelisted-ips =传递到 chrome驱动程序(不是chrome!)可执行文件中
您可以通过以下几种方式做到这一点:
如果您在本地/直接通过代码使用ChromeDriver,只需在ChromeDriver初始化之前在下面插入行
set(TARGET_NAME program)
file(GLOB_RECURSE FILES *.c)
add_executable(${TARGET_NAME} ${FILES})
file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/${TARGET_NAME})
set_target_properties(${TARGET_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY
${PROJECT_SOURCE_DIR}/bin/${TARGET_NAME})
如果您远程使用它(例如selenium hub / grid),则需要在节点启动时设置系统属性,例如在命令中:
System.setProperty("webdriver.chrome.whitelistedIps", "");
或通过传递java -Dwebdriver.chrome.whitelistedIps= testClass etc...
env
JAVA_OPTS
答案 7 :(得分:0)
我必须在同一个终端中运行我的命令,而不是单独运行。
nohup sudo Xvfb :10 -ac
export DISPLAY=:10
java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.chrome.bin="/usr/bin/google-chrome" -Dwebdriver.chrome.driver="vendor/bin/chromedriver"
答案 8 :(得分:0)
Chromedriver是一个WebDriver。 WebDriver是一个开放源代码工具,用于跨多种浏览器自动测试Web应用程序。它提供了导航到网页,用户输入,JavaScript执行等功能。运行此驱动程序时,它将使您的脚本能够访问该驱动程序并在Google Chrome上运行命令。
这可以通过在本地网络中运行的脚本(Only local connections are allowed.
)或通过在外部网络中运行的脚本(All remote connections are allowed.
)来完成。使用“本地连接”选项总是更安全。默认情况下,您可以通过端口9515
访问Chromedriver。
要回答这个问题,这只是一条信息性消息。您不必担心。
下面给出了两个选项。
$ chromedriver
Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
这是通过将所有IP列入白名单。
$ chromedriver --whitelisted-ips=""
Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
All remote connections are allowed. Use a whitelist instead!
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
答案 9 :(得分:0)
遇到了同样的问题,通过从以下位置获取适当的 webdriver 解决了它: https://chromedriver.chromium.org/downloads
您可以通过输入链接了解您的 chrome 浏览器的确切版本:
chrome://settings/help
答案 10 :(得分:-1)
我通过安装浏览器驱动程序解决了这个错误:
参考:在YouTube.com上搜索错误
平台:macOS High Sierra 10.13.3