在Firefox或IE中使用Protractor

Mar*_*ein 3 selenium-webdriver protractor webdriver-manager

量角器适用于Chrome,但我无法启动它来启动Firefox或Internet Explorer.

  • Windows 7的
  • 节点v6.9.1

片段来自package.json:

"scripts": {
    ....
    "webdriver-manager-update": "webdriver-manager update --ie",
    "protractor": "protractor protractor.conf.js",
    ...
},
...
"devDependencies": {
    ...
    "protractor": "5.1.1",
    ...
}
Run Code Online (Sandbox Code Playgroud)

protractor.conf.js:

exports.config = {
    capabilities: {
      browserName: "firefox" // or "internet explorer"
    },
    specs: ["target/e2e/**/*.e2e-spec.js"]
};
Run Code Online (Sandbox Code Playgroud)

运行后npm run webdriver-manager-update,<project-home>\node_modules\protractor\node_modules\webdriver-manager\selenium\包含文件chromedriver_2.28.exe,geckodriver-v0.15.0.exeIEDriverServer3.3.0.exe.

运行时npm run protractor,我收到一个错误:

[12:29:45] I/launcher - Running 1 instances of WebDriver
[12:29:45] I/local - Starting selenium standalone server...
[12:29:46] I/local - Selenium standalone server started at http://192.168.213.25:62661/wd/hub
[12:29:46] E/launcher - The path to the driver executable must be set by the webdriver.gecko.driver system property
Run Code Online (Sandbox Code Playgroud)

(对于IE,它指的是webdriver.ie.driver系统属性)

经过大量的谷歌搜索,我尝试了以下修复:

a)添加<project-home>\node_modules\protractor\node_modules\webdriver-manager\selenium\到系统环境变量Path.这似乎没什么区别.

b)将以下行添加到protractor.conf.js:

seleniumArgs: ["-Dwebdriver.gecko.driver=<project-home>\\node_modules\\protractor\\node_modules\\webdriver-manager\\selenium\\geckodriver-v0.15.0.exe"],
Run Code Online (Sandbox Code Playgroud)

现在npm run protractor产量:

[12:40:35] I/launcher - Running 1 instances of WebDriver
[12:40:35] I/local - Starting selenium standalone server...
[12:40:35] E/launcher - Error: Error: Server terminated early with status 1
    at Error (native)
    at earlyTermination.catch.e (<project-home>\node_modules\selenium-webdriver\remote\index.js:252:52)
    at process._tickCallback (internal/process/next_tick.js:103:7)
[12:40:35] E/launcher - Process exited with error code 100
Run Code Online (Sandbox Code Playgroud)

(IE的类似行为)

我的搜索结果表明我不是唯一一个遇到这个问题的人,但不幸的是,我没有找到解决方案.

Mar*_*ein 5

最后,我在Nick Tomlin回答中找到了解决方案:

它不是seleniumArgs你需要设置的,但是localSeleniumStandaloneOpts.jvmArgs.所以,在protractor.conf.js,写道:

localSeleniumStandaloneOpts: {
    jvmArgs: ["-Dwebdriver.gecko.driver=<project-home>\\node_modules\\protractor\\node_modules\\webdriver-manager\\selenium\\geckodriver-v0.15.0.exe"]
  },
Run Code Online (Sandbox Code Playgroud)

(类似于IE)