Google chrome 当使用Chrome浏览器运行WebDriver时,会收到一条消息“0”;仅允许本地连接”;即使浏览器正常启动
当我使用WebDriver运行Chrome浏览器时,我在控制台上收到以下消息。请让我知道如何解决它 “仅在本地端口22582上启动ChromeDriver(v2.10.267521)” 允许连接。” 以下是我的示例代码:Google chrome 当使用Chrome浏览器运行WebDriver时,会收到一条消息“0”;仅允许本地连接”;即使浏览器正常启动,google-chrome,webdriver,selenium-chromedriver,Google Chrome,Webdriver,Selenium Chromedriver,当我使用WebDriver运行Chrome浏览器时,我在控制台上收到以下消息。请让我知道如何解决它 “仅在本地端口22582上启动ChromeDriver(v2.10.267521)” 允许连接。” 以下是我的示例代码: 公共类浏览器启动{ 公共静态void main(字符串[]args){ System.setProperty(“webdriver.chrome.driver”,“C:\\chromedriver\U win32\\chromedriver.exe”); WebDriver驱动
公共类浏览器启动{
公共静态void main(字符串[]args){
System.setProperty(“webdriver.chrome.driver”,“C:\\chromedriver\U win32\\chromedriver.exe”);
WebDriver驱动程序=新的ChromeDriver();
驱动程序。获取(“http://webdunia.com");
driver.close();
driver.quit();
}
}
这只是一条信息性消息。消息告诉您的是chromedriver可执行文件将只接受来自本地计算机的连接
大多数驱动程序实现(Chrome驱动程序和IE驱动程序)都会创建HTTP服务器。语言绑定(Java、Python、Ruby、.NET等)都使用JSON over HTTP协议与驱动程序通信,并使浏览器自动化。由于HTTP服务器只是在一个开放端口上侦听由语言绑定生成的HTTP请求,因此只允许从同一主机上的其他进程连接到由语言绑定启动的HTTP服务器。请注意,此限制不适用于浏览器与外部网站的连接;相反,它只是阻止来自其他网站的传入连接。这只是一条信息性消息。如果您的测试脚本和chromedriver在同一台机器上,则没有任何意义,可以添加“白名单ips”选项。您的测试将正常运行。但是,如果您在网格设置中使用chromedriver,则不会显示此消息。我收到了完全相同的错误。今天我就这个问题争论了几个小时。这似乎是由于chromedriver和selenium server standalone的版本不匹配造成的。config.js文件引用的目录包含chromedriver 2.9和selenium server standalone 2.35.0。一旦我确定我们参考的是2.10和2.42.2,它就起作用了。当我不得不修复一个很久没有看过的旧项目时,这种情况发生在我身上。与项目相关的chromedriver与我的chrome版本不兼容,因此当我更新chromedriver时,它运行良好。不一定是最佳实践,但我的环境是一个本地网络,有多台机器需要访问selenium 运行chromedriver时,可以通过如下参数:
chromedriver——白名单ips=“”
这将基本上将所有IP列为白名单,当然并不总是理想的解决方案,并在生产环境中小心使用,但您应该得到详细的警告:
启动ChromeDriver 2.16.333244
(端口9515上的15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca)所有远程
允许连接。改用白名单
这是一个最好的解决办法,但它是有效的
我必须在同一个终端上运行命令,而不是单独运行
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"
如果您使用不兼容版本的Selenium和ChromeDriver,通常会出现此错误 针对Maven项目的Selenium 3.0.1:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.0.1</version>
</dependency>
org.seleniumhq.selenium
我通过安装浏览器驱动程序解决了此错误:
将浏览器导航到seleniumhq.org网站
选择下载选项卡
向下滚动页面至浏览器部分,单击链接下载所需的驱动程序,例如Google Chrome驱动程序
双击下载的文件,例如chromedriver_mac64(1).zip
双击提取的文件,例如chromedriver
参考:搜索YouTube.com以查找错误
平台:macOS High Sierra 10.13.3Chromedriver是一款网络驱动程序。WebDriver是一个开源工具,用于跨多种浏览器自动测试web应用程序。它提供了浏览网页、用户输入、JavaScript执行等功能。当您运行此驱动程序时,它将允许您的脚本访问此驱动程序并在Google Chrome上运行命令
这可以通过在本地网络上运行的脚本(只允许本地连接。
)或通过在外部网络上运行的脚本(允许所有远程连接。
)完成。使用本地连接选项总是比较安全的。默认情况下,可以通过端口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.
经过数小时的分析,阅读了大量日志和源代码,最终发现了问题。解决这个问题很容易
在单行中:您需要将--whitelisted ips=传递到chrome驱动程序中(而不是chrome!)可执行文件中
您可以通过以下几种方式实现:
如果您在本地/直接从代码中使用ChromeDriver,只需在ChromeDriver init之前插入下面的行
System.setProperty(“webdriver.chrome.whitelistedIps”,”);
如果远程使用它(如selenium hub/grid),则需要在节点启动时设置系统属性,如命令:
java -Dwebdriver.chrome.whitelistedIps= testClass etc...
或通过传递JAVA\u选项env
chrome:
图片:selenium/node chrome:3.141.59
容器名称:chrome
取决于:
-硒轮毂
环境:
-集线器\主机=selenium集线器
-集线器端口=4444
-JAVA_OPTS=-Dwebdriver.chrome.whitelistedIps=
也有同样的问题,通过从以下位置获取适当的webdriver解决了该问题:
通过输入以下链接,您可以知道chrome浏览器的确切版本:
chrome://settings/help
你应该解释他如何解决他的问题。你只是发现了问题,但如何解决呢?哪个版本