Firefox 57在端到端测试期间不会在Selenium中加载geckoservice

时间:2017-11-20 21:26:46

标签: selenium firefox protractor geckodriver

我正在尝试加载Firefox以使用selenium测试我的Web应用程序。我在SessionNotCreatedError: Unable to create new service: GeckoDriverService中指定firefox时出现capabilities错误。这是它的样子:

var config = {
 sauceUser: process.env.SAUCE_USERNAME,
 sauceKey: process.env.SAUCE_ACCESS_KEY,
 framework: 'jasmine2',
 capabilities: {
  browserName: 'firefox',
  version: '57.0', 
  'screenResolution': '1920x1440'
 },
 specs: [
  '*.spec.js'
 ],
  jasmineNodeOpts: {
   showColors: true,
   defaultTimeoutInterval: 300000,
   print: function() {}
 },
  params: {
     defaultTimeout: 15000
 }
};

以下是我的环境的详细信息:

OS: Ubuntu 16.04 LTS 64bit
Firefox: Quantum 57 64 bit
Selenium: 3.7.1
webdriver-manager: 12.0.6
gecko driver: 0.19.1
Protractor: 5.2.0

当我运行我的量角器端到端测试用例时,它会抛出此错误:

[13:14:58] E/launcher - SessionNotCreatedError: Unable to create new service: GeckoDriverService
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '4.10.0-38-generic', java.version: '1.8.0_151'
Driver info: driver.version: unknown
    at Object.checkLegacyResponse (/home/dev/node_modules/selenium-webdriver/lib/error.js:546:15)
    at parseHttpResponse (/home/dev/node_modules/selenium-webdriver/lib/http.js:509:13)
    at doSend.then.response (/home/dev/node_modules/selenium-webdriver/lib/http.js:441:30)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
From: Task: WebDriver.createSession()
    at Function.createSession (/home/dev/node_modules/selenium-webdriver/lib/webdriver.js:769:24)
    at Function.createSession (/home/dev/node_modules/selenium-webdriver/firefox/index.js:521:41)
    at createDriver (/home/dev/node_modules/selenium-webdriver/index.js:170:33)
    at Builder.build (/home/dev/node_modules/selenium-webdriver/index.js:632:16)
    at Local.getNewDriver (/home/dev/node_modules/protractor/built/driverProviders/driverProvider.js:53:33)
    at Runner.createBrowser (/home/dev/node_modules/protractor/built/runner.js:195:43)
    at q.then.then (/home/dev/node_modules/protractor/built/runner.js:339:29)
    at _fulfilled (/home/dev/node_modules/protractor/node_modules/q/q.js:834:54)
    at self.promiseDispatch.done (/home/dev/node_modules/protractor/node_modules/q/q.js:863:30)
    at Promise.promise.promiseDispatch (/home/dev/node_modules/protractor/node_modules/q/q.js:796:13)
[13:14:58] E/launcher - Process exited with error code 199

我尝试使用 selenium gecko驱动程序的更新版本,但这也无济于事。

我添加了marionette: true,但仍然遇到了同样的错误。我也试过"javascriptEnabled": true, "acceptSslCerts": true但没有成功。

2 个答案:

答案 0 :(得分:0)

使用geckodriver@1.10.0和Firefox 57.0(64位)时,它对我有用。

答案 1 :(得分:-1)

请尝试以下解决方案:

DesiredCapabilities caps = DesiredCapabilities.firefox();
caps.setcapabilities("platform","Windows 7"); // you can modify as per your system

caps.setcapabilities("version","57.0"); //modify it to your desired version
caps.setcapabilities("marionette","true");

driver = new RemoteWebDriver(new URL(url), caps); // replace url to your saucelab url

我希望这会有所帮助