Firefox自我升级到47版后,Selenium停止工作。 我遵循Mozilla建议的关于Marionette驱动程序的Javascript(Node.js)步骤,但控制台说它无法在我当前的系统上找到Firefox,但是浏览器的路径很好而且标准。 错误是"无法在当前系统上找到Firefox" 在C:\ Users \\ node_modules \ selenium-webdriver \ firefox \ binary.js:115:11
如果重要,我使用WebdriverJS。
答案 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解决了这个特殊问题。