我可以使用chrome在我的Angular2应用程序上运行我的e2e测试,它运行得很好。当我尝试使用无头镀铬只使用额外的chromeOptions时,它无法找到角度应用程序。我尝试过使用directConnect:true并且首先使用webdriver-manager启动selenium服务器,但两者都失败了。
测试的第一件事是调用browser()。get('/');
纱线运行v1.3.2
$ protractor protractor.conf.js
[10:51:34]我/启动器 - 运行WebDriver的1个实例
[10:51:34]我/直接 - 直接使用ChromeDriver ...
茉莉花开始了
[10:51:48] E /量角器 - 在页面https://localhost:4200/上找不到Angular:重试寻找角度超过了
这是我的版本
节点版本:6.11.0
量角器版本:5.2.0
角度版本:1.4.4
浏览器:镀铬无头
操作系统和版本Windows 7
这是我的protractor.conf.js
var SpecReporter = require('jasmine-spec-reporter').SpecReporter;
var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./e2e/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome',
chromeOptions: {
args: ["--headless", "--disable-gpu", "--window-size=800,600"]
}
},
directConnect: true,
baseUrl: 'https://localhost:4200/',
framework: 'jasmine2',
useAllAngular2AppRoots: true,
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function () { }
},
onPrepare() {
require('ts-node').register({
project: 'e2e/tsconfig.json'
});
jasmine.getEnv().addReporter(new SpecReporter({
spec: { displayStacktrace: true }
}));
jasmine.getEnv().addReporter(new Jasmine2HtmlReporter({
savePath: './protractor-results/e2e'
}));
}
};
答案 0 :(得分:2)
您可能遇到了Chrome沙箱安全性错误。在您的量角器配置文件中添加--no-sandbox
如下所示的Chrome选项,它可能会有效。 : - )
exports.config = {
allScriptsTimeout: 11000,
specs: ["./e2e/**/*.e2e-spec.ts"],
capabilities: {
browserName: "chrome",
chromeOptions: {
binary: process.env.CHROME_BIN,
args: ['--no-sandbox']
}
},
答案 1 :(得分:0)
您是否检查了此Issue on Protractor here和this Chrome-Bug here?
您是否检查过页面上是否存在角度?
请参阅this answer了解,需要注意的事项。基本上检查,如果您的浏览器控制台在window.angular.version
(AngularJS)或window.getAllAngularRootElements
(Angular)上返回任何内容。
如果其中一个返回结果,但您的测试仍然不起作用,我建议打开Issue on Protractor Github。