什么是适合我的Firefox版本的geckodriver?

我正在尝试使用Firefox在Amazon Linux上运行nodeJs(节点v 8.8.1)自动化testing。 由于亚马逊Linux的一些限制,最新版本的firefox taht实际上运行的是41.下面是我的Firefox和亚马逊版本…

[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 

我的问题是,我使用什么版本的Geckodriver与此版本的Firefox兼容? 有了最新版本,我们得到错误,试图产生一个Firefox窗口,没有在我们的path壁虎驱动程序,我们得到了错误

 /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 

编辑:根据答案,我删除并重新安装了selenium2.53驱动程序…

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

但现在我得到一个新的错误…

 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 

由于firefox版本是41,所以使用selenium 2好,如果我们使用selenium 3意味着最新的,我们需要不支持这个旧版本的gecko。

我使用selenium2与Firefox的依赖http://selenium-release.storage.googleapis.com/index.html?path=2.53/与最新铬和IE驱动程序与最新的铬和IE浏览器工作&#x3002;

我想,你得到这个错误,因为它是要求geckodriver.exe 。 Geckodriver最初被称为0.8.0之前的电线。 请在您的系统PATH上提供exe文件。

你可以使用selenium3(我认为是最好的select,因为它的最新),而不提供壁虎(早期的FF版本)通过设置此属性为false

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

或做

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

你可能不得不寻找相当于nodejs。

编辑: 这是js版本

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

当你这样做,FF将使用其传统扩展,而不是壁虎

如这里所述

如果您想了解更多关于木偶客户端 – 服务器 – 壁虎交互的信息 ,可以查看相关的问题。

发现亚马逊Linux的正确版本Firefox 41是selenium-webdriver 2.50,不多不less(尝试2.48和2.53,并得到了这两个失败)。