Selenium 3.0 Firefx Драйвер не работает с org.openqa.selenium.SessionNotCreatedException: невозможно создать новый удаленный сеанс

Драйвер Selenium 3.0 Firefx выходит из строя с org.openqa.selenium.SessionNotCreatedException: невозможно создать новый удаленный сеанс.

System.setProperty("webdriver.gecko.driver", "..<Path>../geckodriver.exe");
capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
driver = new FirefoxDriver(capabilities);


Caused by: org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{marionette=true, [email protected]3a, browserName=firefox, moz:[email protected]3a, version=, platform=ANY}], required capabilities = Capabilities [{}]
Build info: version: '3.0.0', revision: '350cf60', time: '2016-10-13 10:48:57 -0700'
System info: host: 'D202540', ip: '10.22.19.193', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_45'
Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:91)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:259)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:247)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:242)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:135)

Ответ 1

эта проблема решается с помощью geckodriver 0.15 и версии selenium 3.3.

Ответ 2

Вам нужно скачать geckodriver. А затем установите

System.setProperty("webdriver.gecko.driver", "path\\to\\geckodriver.exe")

Отметьте ссылку .

Ответ 3

Для удаленного использования вместо этого вы не используете удаленный драйвер?

Но я также получаю подобную ошибку для ниже конфигурации:

    System.setProperty("webdriver.gecko.driver", "src\\test\\resources\\webdrivers\\geckodriver.exe");

    port = ":4444";
    node_ip_address = "http://" + node_ip_address + port + "/wd/hub" ;

    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    capabilities.setBrowserName("firefox");
    //capabilities.setVersion("");

    capabilities.setCapability("marionette", true);
    driver = new RemoteWebDriver(new URL(node_ip_address), capabilities);
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);

Ответ 4

У меня была такая же проблема, и я исправил ее. Кажется, он не смог найти двоичный файл firefox

capabilities.setCapability("firefox_binary","C:\\Program Files\\Mozilla Firefox\\firefox.exe");

Ответ 5

Такая же проблема. Было решено открыть Eclipse/Netbeans с правами администратора.

Ответ 6

Это сработало (linux mint, opensuse thumbleweed, win7) с

libraryDependencies + = "org.seleniumhq.selenium" % "selenium-firefox-driver" % "3.0.1"

geckodriver.exe -V geckodriver 0.13.0

if (System.getProperty("os.name").toLowerCase().contains("linux")) {
  println("загружены настройки os.name=linux")
  System.setProperty("webdriver.chrome.driver", "bin/chromedriver")
  System.setProperty("webdriver.gecko.driver", "bin/geckodriver")

}else{
  System.setProperty("webdriver.chrome.driver", "bin\\chromedriver.exe")
  System.setProperty("webdriver.gecko.driver", "bin\\geckodriver.exe")
  System.setProperty("webdriver.ie.driver", "bin\\IEDriverServer.exe")
  System.setProperty("webdriver.edge.driver", "C:\\Program Files (x86)\\Microsoft Web Driver\\MicrosoftWebDriver.exe")
  System.setProperty("webdriver.opera.driver", "c:\\XXX\\operadriver.exe")

  System.setProperty("webdriver.opera.path","""C:\\Users\\user\\AppData\\Local\\Programs\\Opera""")
  System.setProperty("webdriver.opera.binary","""C:\\Users\\user\\AppData\\Local\\Programs\\Opera\\launcher.exe""")
  //
}

...

      case
        "firefox" => {
        println(" подгружаем Веб-драйвер: geckodriver")
        //iniprofile = new ProfilesIni()
        //ffprofile = iniprofile.getProfile("default")
        dc = DesiredCapabilities.firefox()
        dc.setCapability("gecko", true) // как выйдет драйвер, так и установить
//        dc.setCapability(FirefoxDriver.PROFILE, ffprofile); //FirefoxDriver.PROFILE = "firefox_profile";
        remote = new FirefoxDriver(dc)
      }

но для Remotewebdriver-соединения, если предыдущий сеанс не выполнен, отменен или прерван, мы получаем ошибку:

[info] XXXX.E011_WebDB6292 *** ABORTED ***
[info]   org.openqa.selenium.SessionNotCreatedException: Session is already started (WARNING: The server did not provide any stacktrace information)
[info] Command duration or timeout: 0 milliseconds
[info] Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700'
[info] System info: host: 'XXXX', ip: '172.16.4.125', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_11'
[info] Driver info: driver.version: RemoteWebDriver
[info]   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

Ответ 7

Сегодня я столкнулся с одной и той же проблемой, и кажется, что не является администратором моего ноутбука на самом деле проблемой. Чтобы решить проблему,

  • Установить в Firefox без Firefox (просто не нужно нажимать на нет, когда Windows запрашивает повышение привилегий)
  • Используйте EXE-путь (для моей системы что-то вроде C:\\Users\\MyUserName\\AppData\\Local\\MozillaFirefox\\firefox.exe).

    Это действительно решило проблему.