【发布时间】:2019-03-08 17:18:50
【问题描述】:
我已将通过 Protractor 运行的 Cucumber 测试转换为 TypeScript。如果我从命令行运行测试,如下所示:
rimraf cucumber/build && tsc -p cucumber && protractor cucumber/build/protractor.conf.js
这很好,可以成功且正确地运行测试。但是,如果我将这些命令移动到脚本中,如下所示:
// package.json
...
"cucumber": "rimraf cucumber/build && tsc -p cucumber && protractor cucumber/build/protractor.conf.js"
...
然后它会因以下错误而崩溃:
[13:54:55] I/launcher - Running 1 instances of WebDriver
[13:54:55] I/direct - Using ChromeDriver directly...
[13:54:55] E/direct - Error code: 135
[13:54:55] E/direct - Error message: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
[13:54:55] E/direct - Error: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.
我对 Protractor 和 Cucumber 以及 Selenium 很陌生,所以我不知道该怎么做!我试过运行更新命令,但没有效果。
我的 protractor.conf.ts 看起来像这样:
import { Config } from 'protractor';
export let config: Config = {
allScriptsTimeout: 11000,
specs: [
'../features/**/*.feature'
],
seleniumAddress: 'http://localhost:4444/wd/hub',
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ["--disable-gpu"]
}
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'custom',
frameworkPath: require.resolve('protractor-cucumber-framework'),
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, '../tsconfig.json')
});
const chai = require('chai');
const chaiAsPromised = require('chai-as-promised');
// Load chai-as-promised support
chai.use(chaiAsPromised);
// Initialise should API (attaches as a property on Object)
chai.should();
},
cucumberOpts: {
require: [
'./features/**/steps/*.steps.js'
]
}
};
有人可以帮忙吗?
【问题讨论】:
-
你能显示量角器配置吗?同样正如错误所说,运行 webdriver-manager update 命令,以便它可以生成带有浏览器驱动程序本身位置的 webdriver 配置文件。
-
好的,已添加;正如我在原帖中所说,我已经尝试运行更新命令。
-
执行以下命令:node ./node_modules/protractor/bin/webdriver-manager update
标签: typescript selenium protractor cucumber cucumberjs