【发布时间】:2017-07-25 09:09:21
【问题描述】:
我正在尝试通过 Protractor/Selenium 在弹出的 Angular 4 项目上运行 E2E 测试。
我的package.json:
...
"scripts": {
"pree2e": "webdriver-manager update --standalone false --gecko false --quiet node",
"e2e": "protractor ./protractor.conf.js"
}
...
我的protractor.conf:
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
directConnect: true,
allScriptsTimeout: 60000,
getPageTimeout: 60000,
specs: [
'./src/e2e/**/*.e2e-test.ts'
],
capabilities: {
'browserName': 'chrome'
},
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 60000
},
onPrepare() {
require('ts-node').register({
project: 'tsconfig.e2e.json'
});
jasmine.getEnv().addReporter(new SpecReporter({
spec: {
displayStacktrace: true
}
}));
browser.driver.manage().timeouts().setScriptTimeout(60000);
}
};
运行npm run e2e 时,Chrome 会启动,但它会尝试为每次测试打开data:text/html,<html></html>,然后迅速关闭。我错过了什么?我尝试将baseUrl 添加到我的protractor.conf 中,但这并没有帮助,因为似乎Selenium 甚至没有运行。
【问题讨论】:
-
您是否忘记指定您的应用程序
baseUrl? -
它在哪里运行? :)
-
您必须在
conf文件中指定。例如,请参阅此 conf 文件-github.com/igniteram/protractor-cucumber-typescript/blob/master/… -
这是一个很好的例子 :) 说真的,我不知道我应该在那里指定什么? Selenium 在哪里运行?如果我指定
http://localhost:4444它不起作用。 -
您应该在配置中使用
seleniumAddress或directConnect,但不能同时使用两者。您会看到,当您提供 selenium 地址时,它会在系统中本地运行 selenium 服务器。为此,您需要单独安装 selenium 服务器,但如果您使用directConnect,则无需安装 selenium 服务器,它会直接启动浏览器。在baseUrl中提供您的应用程序网址并使用directConnect现在看看!请参阅此链接了解更多信息 - protractortest.org/#/server-setup
标签: javascript angular testing protractor