Search code examples
linuxselenium-webdriverfirefoxgeckodriverselenium-firefoxdriver

org.openqa.selenium.WebDriverException: Error loading page error with Selenium 3.0.1 GeckoDriver 0.13 and Firefox 46.0


I keep running into this error when using a tool that attempts to load a locally-saved web page via Selenium, gekodriver, and firefox. Versions utilized:

  • Selenium: 3.0.1
  • Gekodriver: 13.0
  • Firefox: 46.0

My constraints are that I have to use selenium 3.0.1, but the other dependencies can be altered. Has anybody run into this issue before?

1676503488636   geckodriver INFO    Listening on 127.0.0.1:12651
Feb 15, 2023 3:24:48 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
1676503488712   mozprofile::profile INFO    Using profile path /tmp/rust_mozprofile.gQ6hEnrnMxIC
1676503488713   geckodriver::marionette INFO    Starting browser /home/robert/firefox/firefox-bin
1676503488714   geckodriver::marionette INFO    Connecting to Marionette on localhost:36313
1676503489262   Marionette  INFO    Listening on port 36313
Feb 15, 2023 3:24:50 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
org.openqa.selenium.WebDriverException: Error loading page
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'robert-XPS-8700', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.15.0-58-generic', java.version: '1.8.0_202'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{rotatable=false, raisesAccessibilityExceptions=false, marionette=true, firefoxOptions={args=[], prefs={}}, appBuildId=20160421124000, version=, platform=LINUX, proxy={}, specificationLevel=1, acceptSslCerts=false, browserVersion=46.0, platformVersion=5.15.0-58-generic, XULappId={ec8030f7-c20a-464f-9b0e-13a3a9e97384}, browserName=Firefox, takesScreenshot=true, takesElementScreenshot=true, platformName=Linux, device=desktop}]
Session ID: 918b2a1b-0b33-4acf-ae5a-8545c55ad0d9
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:127)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:93)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:42)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:163)
    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.get(RemoteWebDriver.java:322)
    at shef.main.RLGExtractor.extract(RLGExtractor.java:105)
    at shef.main.Tool.runFaultDetector(Tool.java:185)
    at shef.main.Tool.<init>(Tool.java:136)
    at shef.main.Tool.main(Tool.java:417)

Solution

  • As per the geckodriver specifications Selenium users must update to version 3.11 or later to use geckodriver like other clients that follow the W3C WebDriver specification and are also supported.

    Additionally, support for GeckoDriver is best in Firefox 57 and greater, however the more recent the Firefox version, the better the experience as they contain more bug fixes and the recent features while some features will only be available in the latest Firefox Nightly with GeckoDriver.


    This usecase

    If you are working with the legacy Firefox releases (i.e. till Firefox 47.x) geckodriver still works but you have to explicitly set the property "marionette" to false as follows:

    cap = DesiredCapabilities().FIREFOX
    cap["marionette"] = False
    

    References

    You can find a couple of relevant detailed discussions in: