简体   繁体   中英

java.net.ConnectException: Failed to connect to localhost/127.0.0.1:xxxx while invoking Firefox browser in Headless mode

I am getting a "java.net.ConnectException: Failed to connect to localhost" error whenever I try to initialize the FirefoxDriver. Any Help?

Code and Stack Trace Below:

Java Code

firefoxBinary = new FirefoxBinary();
firefoxBinary.addCommandLineOptions("--headless");

System.setProperty("webdriver.gecko.driver", (String) pluginConfig.get("geckodriver"));
firefoxOptions = new FirefoxOptions();

firefoxOptions.setBinary(firefoxBinary);
driver = new FirefoxDriver(firefoxOptions);

This line throws the error

driver = new FirefoxDriver(firefoxOptions);

Stack Trace:

java.net.ConnectException: Failed to connect to localhost/127.0.0.1:5054 Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z' System info: host: 'xxxxx-Lenovo-YOGA-3-Pro-1370', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-127-generic', java.version: '1.8.0_171' Driver info: driver.version: FirefoxDriver
org.openqa.selenium.WebDriverException
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'
System info: host: 'xxxxxx-Lenovo-YOGA-3-Pro-1370', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-127-generic', java.version: '1.8.0_171'
Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:92)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:207)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:130)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:125)
    at 

Not sure about the contents of pluginConfig file. In general to invoke Firefox Browser in Headless Mode programatically through Selenium 3.12.0 , GeckoDriver v 0.20.1 , Firefox Quantum v60.0.2 and Java you need to pass the argument --headless through an instance of FirefoxOptions and you can use the following solution:

  • Code Block:

     import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxOptions; public class A_Firefox_Headless { public static void main(String[] args) { System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver"); FirefoxOptions options = new FirefoxOptions(); options.addArguments("--headless"); WebDriver driver = new FirefoxDriver(options); System.out.println("Mozilla Firefox Headless Browser Initialized"); driver.get("http://www.google.com"); System.out.println("Page Title is : "+driver.getTitle()); driver.quit(); } } 
  • Console Output:

     1528817592552 geckodriver INFO geckodriver 0.20.1 1528817592563 geckodriver INFO Listening on 127.0.0.1:23550 1528817593461 mozrunner::runner INFO Running command: "C:\\\\Program Files\\\\Mozilla Firefox\\\\firefox.exe" "-marionette" "--headless" "-profile" "C:\\\\Users\\\\ATECHM~1\\\\AppData\\\\Local\\\\Temp\\\\rust_mozprofile.M2jv24VJ0QMg" *** You are running in headless mode. 1528817597139 Marionette INFO Listening on port 8949 1528817597577 Marionette WARN TLS certificate errors will be ignored for this session Jun 12, 2018 9:03:17 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: W3C Mozilla Firefox Headless Browser Initialized Page Title is : Google 

Resolved it.The problem was that, I was using a corrupted copy of geckodriver and it gave the following error above the stacktrace.

--- exec-maven-plugin:1.2.1:exec (default-cli) @ fetcher-firefox ---
path/to/geckodriver: 2: path/to/geckodriver: Syntax error: newline unexpected
Exception in thread "main" org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:15615

Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z' System info: host: 'xxxxx-Lenovo-YOGA-3-Pro-1370', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-127-generic', java.version: '1.8.0_171'

Details of the issue can be found here: https://github.com/SeleniumHQ/selenium/issues/6013#issuecomment-396665924

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

Related Question java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 80): connect failed: ECONNREFUSED (Connection refused) java.net.ConnectException: fail to connect to localhost/127.0.0.1(port 8080): connect failed:ECONNREFUSED….(Codename One App) Failed to connect to server: localhost/127.0.0.1:9000: try once and fail. java.net.ConnectException: Connection refused error“ org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost/” with GeckoDriver and Firefox org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0 using GeckoDriver Firefox and Selenium IOException java.net.ConnectException: failed to connect to /127.0.0.1(port 5000):connect failed:ECONNREFUSED(Connection Refused) cannot connect to postgrespql on localhost from tomcat application: Caused by: java.net.ConnectException: Permission denied (connect failed) java.net.ConnectException : Failed to connect to localhost/0:0:0:0:0:0:0:1:1731 using ChromeDriver Chrome through Selenium Java in Spring Bot org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:1941 with GeckoDriver and Selenium org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost with Gecko driver
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM