1. End-to-End Testing Introduction
2.1 code_changes.html
2. Page Objects
3.1 code_changes.html
3. Accessing specific elements Add three products to the basket via page object
4.1 code_changes.html
4. Accessing specific elements Assert that the button changes text
5.1 code_changes.html
5. String conversion Assert that the basket counter increases
6.1 code_changes.html
6. Nested page object method calls
7.1 code_changes.html
7. Move to checkout using navigation bar
8.1 code_changes.html
8. Iterating over multiple elements with .map() & String replacements
9.1 code_changes.html
9. Selecting specific elements out of multiple options
10.1 code_changes.html
10. Dropdowns
11.1 code_changes.html
11. Regular Expressions
12.1 code_changes.html
12. Form fields
13.1 code_changes.html
13. Third-party dependencies and UUIDs
14.1 code_changes.html
14. Method arguments - passing data into our page object from outside
15.1 code_changes.html
15. Form fields Fill out delivery details
16.1 code_changes.html
16. Abstracting test data Move user details into data-specific directory
17.1 code_changes.html
17. In-built retries Counting elements
18.1 code_changes.html
18. Extracting input values
19.1 code_changes.html
19. Continue to payment page
20.1 code_changes.html
20. iframes Grab discount code
21.1 code_changes.html
21. In-built retries Input values
22.1 code_changes.html
22. Keyboard API Simulating typing
23.1 code_changes.html
23. In-built retries Text changes
24.1 code_changes.html
24. Form fields Fill in credit card details
25.1 code_changes.html
25. Complete payment
26.1 code_changes.html
26. Mobile viewport setup
27.1 code_changes.html
27. Conditional actions Adding a product to the basket in mobile
28.1 code_changes.html
28. Conditional actions Adjustments to not impact the desktop tests
29.1 code_changes.html
29. Utility functions Move to checkout using mobile navigation drawer