2. ● E2E testing framework
● Developed by Google
● Created especially for Angular
applications
● Can be used with non Angular sites as
well
What is Protractor?
5. ● They are slow to write
● Debugging is not a straightforward
process
● Short life cycle without update
What are the main issues
with writing e2e tests?
6. ● Well-documented
● Integrated with headless and regular
browsers
● Easy to set up
● Very powerful API
What are the pros of
Protractor?
7. ● It is not build for complex user
interactions
● Works at its best only with Chrome
● It doesn’t work well with nested
promises
What are the cons of
Protractor?
9. ● Make a habit to use element.all(by...).
count() to be sure that you create most
suitable element selector.
Protractor tips
10. ● Expect false errors. To confirm an error,
run the tests under alternative OS
Protractor tips
11. ● Beware of the async nature of
Protractor.
● If something doesn't work as expected
go Protractor native, i.e. using .then()
Protractor tips
12. ● Don't abstract the code directly to the
PageObject. Often this abstraction lead
to errors.
Protractor tips
13. ● Other possible issue is when the
element is not in the visible part of the
browser’s screen.
Protractor tips
14. ● Avoid use of browser.sleep() right after
browser.waitForAngular()
Protractor tips
15. ● If you stumble on an error, that the
element you are clicking on is not
attached to the document, that means
that this is not a testable scenario
Protractor tips
16. ● Once you set the browser size, it persist
in your tests until the next browser.
setSize() declaration
Protractor tips
17. ● Popups and animation can temporary
disable Protractor.
Protractor tips
18. ● The behaviour of .then() method of
Protractor’s .map(), .each(), .filter() can
be weird.
Protractor tips
19. ● One falsy selection can ruin all the tests.
Protractor is hard to debug mainly
because in such occasions
Protractor tips
20. ● To make scroll down work, first you
need to focus the to the "window" by
clicking on any element within the
window.
Protractor tips
21. ● Make all your clicks statement either
inside the tests, or in the PageObject.
Protractor tips