无法在当前系统上找到Firefox(Firefox 47)

时间:2016-06-14 14:55:00

标签: selenium firefox webdriver webdriverjs

Firefox自我升级到47版后,Selenium停止工作。 我遵循Mozilla建议的关于Marionette驱动程序的Javascript(Node.js)步骤,但控制台说它无法在我当前的系统上找到Firefox,但是浏览器的路径很好而且标准。 错误是"无法在当前系统上找到Firefox" 在C:\ Users \\ node_modules \ selenium-webdriver \ firefox \ binary.js:115:11

如果重要,我使用WebdriverJS。

6 个答案:

答案 0 :(得分:0)

我已经发生了这种情况,而且似乎总是很随机。这是一个很长的镜头,但尝试改变路径,然后把原来放回来,这对我来说过去了。

答案 1 :(得分:0)

我遇到了类似的问题,并且在GG group中讨论了Firefox 47和WebDriver(JS和其他语言)似乎存在的大量问题。您目前唯一的解决方案可能是降级 - https://ftp.mozilla.org/pub/firefox/releases/46.0.1/

不可否认,降级并没有解决我的问题,但是ymmv

答案 2 :(得分:0)

我遇到了同样的问题,并通过从https://www.mozilla.org/en-US/firefox/developer/下载Developer Edition解决了这个问题。显然,使用firefox的开发者版本存在一些冲突 在node_modules / selenium-webdriver / firefox / binary.js第99行,这段代码:



curl -X GET -H "Authorization: Bearer ntfw****avefg***6mil***kysnl3***" "http://magento.dev.blackorange.nl/rest/V1/products" 




选择了DeveloperEdition,但我没有,导致发现为null,之后在第115行引发错误。

答案 3 :(得分:0)

您的Firefox是否未安装在默认位置?我安装在C:\Users\(username)\AppData\Local\Mozilla Firefox\中,我收到与您相同的错误消息。

浏览代码(感谢@achie),我在node_modules\selenium-webdriver\firefox\index.js中找到了以下内容:

* On Windows and OSX, the FirefoxDriver will search for Firefox in its
* default installation location:
*
* * Windows: C:\Program Files and C:\Program Files (x86).
* * Mac OS X: /Applications/Firefox.app
*
* For Linux, Firefox will be located on the PATH: `$(where firefox)`.

换句话说,将Firefox目录放在Windows上的PATH变量中甚至没有任何用处。

但源代码仍在继续:

* You can configure WebDriver to start use a custom Firefox installation with
* the {@link Binary} class:
*
*     var firefox = require('selenium-webdriver/firefox');
*     var binary = new firefox.Binary('/my/firefox/install/dir/firefox-bin');
*     var options = new firefox.Options().setBinary(binary);
*     var driver = new firefox.Driver(options);

就我而言,那就变成了:

var firefox = require('selenium-webdriver/firefox');
var binary = new firefox.Binary('C:\\Users\\(username)\\AppData\\Local\\Mozilla Firefox\\firefox.exe');
var options = new firefox.Options().setBinary(binary);
var driver = new firefox.Driver(options);

现在Selenium找到了我的Firefox,但是我收到了下一条错误消息:

Error: Timed out waiting for the WebDriver server at http://127.0.0.1:53785/hub

我也试过var driver = new webdriver.Builder().forBrowser('firefox').setFirefoxOptions(options).build();,但这没有任何区别。

希望这会对你有所帮助!

答案 4 :(得分:0)

Mozilla的人们建议使用Marionette驱动程序,因为Selenium Webdriver 2.53和Firefox 47/48存在启动崩溃问题

https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver

答案 5 :(得分:0)

最新的Firefox 48和Selenium Webdriver 3.0.0解决了这个特殊问题。