Selenium 3 vs Firefox

Cześć:)

Witam Was serdecznie po krótkiej przerwie od bloga. Niestety ze względów prywatnych blogowanie spadło trochę na dalszy plan, niemniej wracam i  nadrabiam zaległości.

 

Dziś chciałabym poruszyć kwestię problemów z użyciem Selenium 3 z Firefoxem.

Jeśli próbowaliście użyć nowego Selenium z Firefoxem to na pewno trafiliście na błąd.

W moim przypadku wyglądało to następująco:

Caused by: java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases
  at com.google.common.base.Preconditions.checkState(Preconditions.java:738)
  at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:111)
  at org.openqa.selenium.firefox.GeckoDriverService.access$100(GeckoDriverService.java:38)
  at org.openqa.selenium.firefox.GeckoDriverService$Builder.findDefaultExecutable(GeckoDriverService.java:112)
  at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:302)
  at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:233)
  at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:125)
  at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:137)
  at task.automation.driver.DriverManager.getFirefoxDriver(DriverManager.java:45)
  at task.automation.driver.DriverManager.getDriver(DriverManager.java:30)
  at task.automation.steps.NewTopicSteps.<init>(NewTopicSteps.java:25)
  ... 41 more

dla kodu:

private static WebDriver getFirefoxDriver() {
    ProfilesIni profile = new ProfilesIni();
    FirefoxProfile myprofile = profile.getProfile("default");
    return new FirefoxDriver(myprofile);
}

 

Przeszukałam sieć w poszukiwaniu rozwiązań, aż wreszcie udało mi się znaleźć działające na stronie:

http://seleniumsimplified.com/2017/03/changes-in-selenium-webdriver-3-1-0-3-2-0-3-3-0-and-3-3-1-for-java/

 

W moim przypadku (Selenium w wersji 3.3.1) działający kod wygląda następująco:

private static WebDriver getFirefoxDriver() {
     ProfilesIni profile = new ProfilesIni();
     FirefoxProfile myprofile = profile.getProfile("default");
     System.setProperty(FirefoxDriver.SystemProperty.DRIVER_USE_MARIONETTE, "false");
     return new FirefoxDriver(myprofile);
 }

 

Mała różnica,  a robi robotę i działa:)

Mam nadzieję, że wpis okaże się przydatny.

Do kolejnego posta!

 

1 thought on “Selenium 3 vs Firefox

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *