2

这是我目前的 nightwatch.json 文件:

nightwatch.json 文件

我的问题:有没有办法引用 server_path .jar 文件来避免 selenium-server-standalone-2.51.0.jar 的硬编码值?我想知道,因为我们公司希望每次我们的 package.json 文件更新时都更新 selenium 版本。一旦 selenium 版本发生变化,我们的测试就会因为这个硬编码值而中断。我努力了:

1)

"../node_modules/selenium-server-standalone-jar/jar///*.jar"

失败并显示“无法访问 jar 文件”的错误消息。只有一个 .jar 文件可供选择。

2) 通过 npm 引用包含所需版本的 selenium-server-standalone 包的 package.json 文件。

任何帮助或建议将不胜感激。

4

2 回答 2

0

你可以试试这个方法:

您的nightwatch.jsonselenium 属性应如下所示:

...
"selenium": {
    "start_process": true,
    "server_path": "node_modules/selenium-standalone/.selenium/selenium-server/",
    "log_path": "./reports",
    "host": "127.0.0.1",
    "port": 4444,
    "cli_args": {
      "webdriver.chrome.driver": ""
    }
  }
...  

nightwatch.conf.js应该是这样的:

require('babel-core/register');
const fs = require("fs");

module.exports = ((settings) => {
  var seleniumFileName =
  fs.readdirSync("node_modules/selenium-standalone/.selenium/selenium-server/");
  settings.selenium.server_path += seleniumFileName;
  return settings;
})(require("./nightwatch.json"));
于 2017-08-19T18:27:05.353 回答
0

只是尝试自己设置 Nightwatch,具有相同的要求。

所以这就是我所做的:

1)在 nightwatch.json 中,我省略了文件名:

...
"selenium" : {
  "start_process" : true,
  "server_path" : "node_modules/selenium-standalone/drivers/selenium-server/",
...

2)从这里: http: //nightwatchjs.org/guide#settings-file 你可以看到你可以使用 javascript 来更改配置。我正在使用selenium-standalone npm 包获取 selenium 服务器。在我有 package.jsonscripts.postinstallselenium-standalone install --basePath %cd%/node_modules/selenium-standalone/drivers

因此我知道驱动程序安装在哪里,并且可以使用该node fs包找出当前安装的 selenium 文件的名称:

const fs = require("fs");

module.exports = (function(settings){
  var seleniumFileName =
  fs.readdirSync("node_modules/selenium-standalone/drivers/selenium-server/")[0];
  settings.selenium.server_path += seleniumFileName;
  return settings;
})(require("./nightwatch.json"));

像魅力一样运行。

于 2016-07-20T17:32:36.223 回答