0

Login page is non- angular. So I set browser.ignoreSynchronization = true; Then after passing the login screen, I have set browser.ignoreSynchronization = false. Also, I have used browser.refresh(). While execution, I see all the steps executed, but shows error message as timeout after 11 seconds.

asked Sep 19, 2019 at 13:17
1
  • 1
    I've never actually been able to get this to work properly. The new way of doing this is to use browser.waitForAngularEnabled() and pass in true of false accordingly. I just set mine to false in the .onPrepare(). I'm always running into the Angular couldn't be found on this page error. Especially when using webpack, so I just disable it entirely and figure out other ways of waiting for elements to be interactable. It's been too much of a hassle with unreliable results for me to keep switching back and forth. Any of the ExpectedConditions options will work perfectly fine. Commented Sep 19, 2019 at 15:02

1 Answer 1

1

You can use browser.ignoreSynchronization=true entirely for angular/non-angular pages and use your own wait mechanism using ExpectedConditions to handle elements.

Either way is using driver methods directly as below, so it won't wait for $http and $timeout

expect(browser.driver.findElement(by.css('.msgtext')).getText().toBe('expexted text')

Please let me know if you need more help and upvote this answer if you find it helpful

answered Sep 22, 2019 at 7:10
4
  • Thank you both. I am already handling the same way you suggested. But would like to how to get this working Commented Sep 26, 2019 at 5:18
  • Also noticed, after login-in the landing page, I see iframe tag inside the body. Should I switch to iframe and check for angular enabled Commented Sep 26, 2019 at 5:24
  • Yes, add browser.ignoreSynchronization=true just after switching to frame Commented Sep 26, 2019 at 9:41
  • My application is build using angular. But ng app is not set in body tag. Also I am not able to find any ng-model/ng-bind tags. All I could see is only _ ngcontent tags. In this case, is there any possibility to change to browser.rootE1 value and remove expected conditions. Will this work Commented Sep 26, 2019 at 9:51

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.