Tell me, what is the protractor waiting for?

Is there a way to determine what Protractor is delaying browser.waitForAngular()?

The My Protractor test basically loads the page, clicks on the item, and then waits for the new page to load. I get the message "Timed out, waiting for the Transcavator to synchronize with the page in 11 seconds", error; however, I am not using $timeoutand I see that there are no outstanding HTTP requests in my Developer Console browser.

I can manually reproduce the same steps as my test in my browser and run

angular.getTestability(document.body)
    .whenStable(function() {console.log("holla")})

and make sure the page is really stable for 1 second after loading.

If I write a protractor test that loads the first page and then uses browser.get('index.html#second-page'), the test passes.

I know that I can install ignoreSerializationon Protractor, but to be honest, I would prefer it because I am worried that there is some insidious mistake in my Angular project. Are there any steps that I can take to better understand what is happening in the transporters?

+4
source share
1 answer

If you have setTimeout in your code, the protractor will not be able to synchronize. Instead, consider using $ interval.

+4
source

Source: https://habr.com/ru/post/1568253/


All Articles