I am trying to create a repository with E2E tests for my web application using Protractor and Cucumber. I have started with this repository: https://github.com/spektrakel-blog/angular-protractor-cucumber
When I am forcing Protractor to treat the application as a regular webpage, the tests run fine. Test runner is interacting with the application and expecting some outcome. The thing is, that I would like to make Protractor detect Angular in order to wait for zones to be stable before checking 'Then' asserts.
Here is my protractor.conf.js:
exports.config = {
allScriptsTimeout: 30000,
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ['--no-sandbox']
}
},
directConnect: true,
baseUrl: 'http://<ci-server-address>/',
specs: [
'./e2e/features/*.feature'
],
framework: 'custom',
frameworkPath: require.resolve('protractor-cucumber-framework'),
cucumberOpts: {
require: ['./e2e/steps/**/*.ts'],
strict: true,
format: [
'json:reports/summary.json'
],
dryRun: false,
compiler: []
},
onPrepare() {
browser.ignoreSynchronization = true;
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
}
};
In short - the tests run with the following config, but when I remove browser.ignoreSynchronization = true;
, I get the following error: Timed out waiting for asynchronous Angular tasks to finish after 30 seconds. This may be because the current page is not an Angular application.
.
Things I have tried so far (with no improvement):
- adding
ng-app
to the<body>
tag - checking
window.getAllAngularRootElements()
- returnsapp-root
correctly - checking
window.getAllAngularTestabilities()
- returns aTestability
object - launching the tests on Chrome (with or without sandbox)
- launching the tests on Firefox
- trying both the CI server with our application deployed and local env with
ng serve
I am using the latest versions of Protractor, Cucumber, Chai and TypeScript. Any help would be much appreciated. Thank you very much in advance!
When I am forcing Protractor to treat the application as a regular webpage, the tests run fine.
this one. I just want to understand maybe you try to resolve the issue (definetly, it is the issue), but you might choose another way. – Scientistexplicit
waiters? – Scientist