java.net.ConnectException: не удалось подключиться к localhost/127.0.0.1:xxxx при вызове браузера Firefox в режиме без головы

Я получаю сообщение об ошибке "java.net.ConnectException: Failed to connect to localhost" при каждой попытке инициализации FirefoxDriver. Любая помощь?

Код и трассировка стека ниже:

Java-код

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);

Эта строка выдает ошибку

driver = new FirefoxDriver(firefoxOptions);

Трассировки стека:

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 

2 ответа

Решил это. Проблема заключалась в том, что я использовал поврежденную копию geckodriver, и она выдавала следующую ошибку выше трассировки стека.

--- 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

Информация о сборке: версия: "3.12.0", редакция: "7c6e0b3", время: "2018-05-08T14:04:26.12Z" Системная информация: хост: "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'

Подробную информацию о проблеме можно найти здесь: https://github.com/SeleniumHQ/selenium/issues/6013

Не уверен насчет содержимого файла pluginConfig. В общем, чтобы запускать браузер Firefox в режиме без головы программно через Selenium 3.12.0, GeckoDriver v 0.20.1, Firefox Quantum v60.0.2 и Java, вам необходимо передать argument - без использования экземпляра FirefoxOptions, и вы можете использовать следующее решение:

  • Блок кода:

    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();
        }
    }
    
  • Консольный вывод:

    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
    
Другие вопросы по тегам