0

I'm using trying to run nodeJs (node v 8.8.1) automated tests on Amazon Linux with Firefox. Due to some limitations with Amazon Linux, the latest version of firefox taht will actually run is 41. Below are my Firefox and Amazon versions ...

[myuser@mymachine ~]$ firefox -v
Mozilla Firefox 41.0
[myuser@mymachine ~]$ uname -a
Linux ip-33-22-3-77 4.9.51-10.52.amzn1.x86_64 #1 SMP Fri Sep 29 01:16:19 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

My question is, what version of Geckodriver do I use taht is compatible with this version of Firefox? With the latest version we get errors trying to spawn a Firefox window and without a gecko driver in our path, we get teh error

/home/jboss/node_modules/selenium-webdriver/firefox/index.js:354
    throw Error(
    ^

Error: The geckodriver executable could not be found on the current PATH. Please download the latest version from https://github.com/mozilla/geckodriver/releases/ and ensure it can be found on your PATH.
    at findGeckoDriver (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:354:11)
    at new ServiceBuilder (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:446:22)
    at Function.createSession (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:516:21)
    at createDriver (/home/jboss/node_modules/selenium-webdriver/index.js:170:33)
    at Builder.build (/home/jboss/node_modules/selenium-webdriver/index.js:645:16)
    at Object.<anonymous> (/home/jboss/.jenkins/workspace/subco/automated-tests/nodejs/js/js-FF/driver.js:9:73)
    at Module._compile (module.js:612:30)
    at Object.Module._extensions..js (module.js:623:10)
    at Module.load (module.js:531:32)
    at tryModuleLoad (module.js:494:12)
/home/jboss/node_modules/selenium-webdriver/firefox/index.js:354
    throw Error(
    ^

Error: The geckodriver executable could not be found on the current PATH. Please download the latest version from https://github.com/mozilla/geckodriver/releases/ and ensure it can be found on your PATH.
    at findGeckoDriver (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:354:11)
    at new ServiceBuilder (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:446:22)
    at Function.createSession (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:516:21)
    at createDriver (/home/jboss/node_modules/selenium-webdriver/index.js:170:33)
    at Builder.build (/home/jboss/node_modules/selenium-webdriver/index.js:645:16)
    at Object.<anonymous> (/home/jboss/.jenkins/workspace/subco/automated-tests/nodejs/js/js-FF/driver.js:9:73)
    at Module._compile (module.js:612:30)
    at Object.Module._extensions..js (module.js:623:10)
    at Module.load (module.js:531:32)
    at tryModuleLoad (module.js:494:12)
/home/jboss/node_modules/selenium-webdriver/firefox/index.js:354
    throw Error(
    ^

Error: The geckodriver executable could not be found on the current PATH. Please download the latest version from https://github.com/mozilla/geckodriver/releases/ and ensure it can be found on your PATH.
    at findGeckoDriver (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:354:11)
    at new ServiceBuilder (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:446:22)
    at Function.createSession (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:516:21)
    at createDriver (/home/jboss/node_modules/selenium-webdriver/index.js:170:33)
    at Builder.build (/home/jboss/node_modules/selenium-webdriver/index.js:645:16)
    at Object.<anonymous> (/home/jboss/.jenkins/workspace/subco/automated-tests/nodejs/js/js-FF/driver.js:9:73)
    at Module._compile (module.js:612:30)
    at Object.Module._extensions..js (module.js:623:10)
    at Module.load (module.js:531:32)
    at tryModuleLoad (module.js:494:12)
/home/jboss/node_modules/selenium-webdriver/firefox/index.js:354
    throw Error(
    ^

Error: The geckodriver executable could not be found on the current PATH. Please download the latest version from https://github.com/mozilla/geckodriver/releases/ and ensure it can be found on your PATH.
    at findGeckoDriver (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:354:11)
    at new ServiceBuilder (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:446:22)
    at Function.createSession (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:516:21)
    at createDriver (/home/jboss/node_modules/selenium-webdriver/index.js:170:33)
    at Builder.build (/home/jboss/node_modules/selenium-webdriver/index.js:645:16)
    at Object.<anonymous> (/home/jboss/.jenkins/workspace/subco/automated-tests/nodejs/js/js-FF/driver.js:9:73)
    at Module._compile (module.js:612:30)
    at Object.Module._extensions..js (module.js:623:10)
    at Module.load (module.js:531:32)
    at tryModuleLoad (module.js:494:12)
ERROR: Maven JVM terminated unexpectedly with exit code 137

Edit: Per the answer, I removed and re-installed teh Selenium 2.53 driver ...

npm uninstall selenium-webdriver
npm install selenium-webdriver@2.53

but now I'm getting a new error ...

Error: The wires executable could not be found on the current PATH. Please download the latest version from https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver and ensure it can be found on your PATH.
    at findWires (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:261:11)
    at createWiresService (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:285:15)
    at new Driver (/home/jboss/node_modules/selenium-webdriver/firefox/index.js:355:21)
    at Builder.build (/home/jboss/node_modules/selenium-webdriver/builder.js:467:16)
    at Object.<anonymous> (/home/jboss/.jenkins/workspace/subco/automated-tests/nodejs/js/js-FF/driver.js:9:73)
    at Module._compile (module.js:612:30)
    at Object.Module._extensions..js (module.js:623:10)
    at Module.load (module.js:531:32)
    at tryModuleLoad (module.js:494:12)
    at Function.Module._load (module.js:486:3)
/home/jboss/node_modules/selenium-webdriver/firefox/index.js:261
Dave
  • 15,639
  • 133
  • 442
  • 830
  • Below FireFox version-44 we don't need geckodriver. and Seems you are using 41 so no need of geckodriver – Ankur Singh Nov 30 '17 at 16:39
  • Possible duplicate of [Selenium WebDriver 3.4.0 + geckodriver 0.18.0 + Firefox ?? - which combination works?](https://stackoverflow.com/questions/45510338/selenium-webdriver-3-4-0-geckodriver-0-18-0-firefox-which-combination-w) – undetected Selenium Nov 30 '17 at 17:02
  • This may Answer your Question https://stackoverflow.com/questions/44530302/how-can-geckodriver-firefox-work-without-marionette-running-python-selenium-3/44537094#44537094 – undetected Selenium Nov 30 '17 at 17:04
  • @AnkurSingh, If i don't need geckodriver, then why am I getting the above error? – Dave Nov 30 '17 at 17:09
  • @DebanjanB, The link you posted is slightly different than mine. The link deals with Firefox v 47 but I'm trying to crack this bad boy for Firefox v 41. – Dave Nov 30 '17 at 18:20
  • @Dave For all the Mozilla Firefox versions earlier then 47.x is likely to work in a similar fashion till Selenium 3.4.x – undetected Selenium Nov 30 '17 at 18:42
  • I think the data posted as the edit to my question would contradict that, no? – Dave Nov 30 '17 at 19:31
  • By downgrading to Selenium 2.x you are trying to pull a rug over the Project Maintenance chores. Sooner or later you have to start writing your framework from the scratch to keep the pace with the advanced Selenium concepts & functions. – undetected Selenium Dec 02 '17 at 10:48

3 Answers3

0

As firefox version is 41, good to use selenium 2, if we use selenium 3 means latest, we need gecko which will not support this old version.

I am using selenium 2 as has firefox dependency http://selenium-release.storage.googleapis.com/index.html?path=2.53/ with latest chrome and IE drivers to work with latest chrome and IE browsers.

murali selenium
  • 3,847
  • 2
  • 11
  • 20
  • I edited my question with the output from your answer. I instaled the Selnium 2.53 webdriver, but now I get the error, "Error: The wires executable could not be found on the current PATH." upon runing my tests. – Dave Nov 30 '17 at 18:19
0

I think, you are getting that error because it is asking for geckodriver.exe . Geckodriver was originally called wires before version 0.8.0. Please provide exe on your system PATH.

You can use selenium 3 (which I think is the best option, because its latest) without providing gecko ( earlier FF versions) by setting this property to false

System.setProperty("webdriver.firefox.marionette", "false");

or do

FirefoxOptions options = new FirefoxOptions()
  .setLegacy(true);

You may have to look for nodejs equivalent.

EDIT: here is the js version

let options = new firefox.Options().useGeckoDriver(false); 

When you do above, FF will use its legacy extension instead of gecko

as mentioned here

You can have a look at a related question here, if you are curious to know more about marionette client-server-gecko interaction.

user1207289
  • 3,060
  • 6
  • 30
  • 66
0

Turns out the right version for Amazon Linux Firefox 41 is selenium-webdriver 2.50, no more no less (tried 2.48 and 2.53 and got failures with both of those).

Dave
  • 15,639
  • 133
  • 442
  • 830