When running WebDriver with Chrome browser, getting message, "Only local connections are allowed" even though browser launches properly
Google ChromeWebdriverSelenium ChromedriverGoogle Chrome Problem Overview
When I run Chrome browser using WebDriver, I am getting following message on console. Please let me know how to resolve it.
> "Starting ChromeDriver (v2.10.267521) on port 22582 " "Only local > connections are allowed."
Here is my sample code:
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();
}
}
Google Chrome Solutions
Solution 1 - Google Chrome
This is an informational message only. What the message is telling you is that the chromedriver executable will only accept connections from the local machine.
Most driver implementations (the Chrome driver and the IE driver for sure) create a HTTP server. The language bindings (Java, Python, Ruby, .NET, etc.) all use a JSON-over-HTTP protocol to communicate with the driver and automate the browser. Since the HTTP server is simply listening on an open port for HTTP requests generated by the language bindings, connections to the HTTP server started by the language bindings are only allowed to come from other processes on the same host. Note carefully that this limitation does not apply to connections the browser can make to outside websites; rather it simply prevents incoming connections from other websites.
Solution 2 - Google Chrome
Not necessarily the best practice, but my environment was a local network with several machines which needed access to the selenium.
When running the chromedriver, you can pass through a param like so :
chromedriver --whitelisted-ips=""
This will basically whitelist all IP's, not always an ideal solution of course and be careful with it for production enviornments, but you should be presented with a verbose warning :
> Starting ChromeDriver 2.16.333244 > (15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca) on port 9515 All remote > connections are allowed. Use a whitelist instead!
A work-around at best, but it works.
Solution 3 - Google Chrome
I was getting the exact same errors. I battled this issue for a few hours today. It seemed to be caused by a mismatch between the versions of chromedriver and selenium-server-standalone. The config.js file was referencing a directory that had chromedriver 2.9 and selenium-server-standalone 2.35.0. Once I made sure we were referencing 2.10 and 2.42.2, it worked.
Solution 4 - Google Chrome
This was happening to me when I had to fix an old project that had not been looked at in a while. The chromedriver associated to the project was not compatible with my version of chrome, so when I updated the chromedriver it worked fine.
Solution 5 - Google Chrome
Chromedriver is a WebDriver. WebDriver is an open-source tool for automated testing of web apps across many browsers. It provides capabilities for navigating to web pages, user input, JavaScript execution, and more. When you run this driver, it will enable your scripts to access this and run commands on Google Chrome.
This can be done via scripts running in the local network (Only local connections are allowed.
) or via scripts running on outside networks (All remote connections are allowed.
). It is always safer to use the Local Connection option. By default your Chromedriver is accessible via port 9515
.
To answer the question, it is just an informational message. You don't have to worry about it.
Given below are both options.
$ 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.
This is by whitelisting all IPs.
$ 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.
Solution 6 - Google Chrome
After hours of analysis reading tons of logs and sourcecode, finally found problem. And it is quite easy to solve it.
in sinle line: you need to pass --whitelisted-ips= into chrome driver (not chrome!) executables
You can do it in few ways:
If you use ChromeDriver locally/directly from code, just insert lines below before ChromeDriver init
System.setProperty("webdriver.chrome.whitelistedIps", "");
If you use it remotely (eg. selenium hub/grid) you need to set system property when node starts, like in command:
java -Dwebdriver.chrome.whitelistedIps= testClass etc...
or docker by passing JAVA_OPTS
env
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=
Solution 7 - Google Chrome
This is an informational message only. It means nothing if your test scripts and chromedriver are on the same machine then it is possible to add the "whitelisted-ips" option .your test will run fine.However if you use chromedriver in a grid setup, this message will not appear
Solution 8 - Google Chrome
I had to run my commands in the one and same terminal, not seperately.
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"
Solution 9 - Google Chrome
Very often this error appears if you use incompatible versions of Selenium and ChromeDriver.
Selenium 3.0.1 for Maven project:
<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
Solution 10 - Google Chrome
Had the same problem, solved it by getting the appropriate webdriver from: https://chromedriver.chromium.org/downloads
You can know the exact version of your chrome browser by entering the link:
chrome://settings/help
Solution 11 - Google Chrome
i was having the same issue. This error comes when you use selenium standalone server instead of selenium-java and your selenium standalone server version and browser version has an incompatibility.
i was using: implementation 'org.seleniumhq.selenium:selenium-server:3.141.59'
in my build.gradle.
To resolve it i had changed my dependency to selenium-java in build.gradle
implementation group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'
i was running locally. But if you are running through Selenium grid then you need to
use System.setProperty("webdriver.chrome.whitelistedIps", "");
before initializing the ChromeDriver.
Solution 12 - Google Chrome
I solved this error by installing the browser driver:
- Navigate your browser to seleniumhq.org website
- Select the Downloads tab
- Scroll down the page to the Browser section and download the driver you want by clicking the link, for example, Google Chrome Driver
- Double-click the downloaded file, for example, chromedriver_mac64(1).zip
- Double-click the extracted file, for example, chromedriver
Reference: search YouTube.com for the error
Platform: macOS High Sierra 10.13.3