Advanced Selenium: 3 Synchronization Strategies
2h 30mAdvanced2020-03-19
Authors

Alan Richardson
Consultant specializing in agile software testing and development
Course details
One of the most common issues associated with automating GUI applications is flakiness: when sometimes a test works, but sometimes it fails—even though neither the application nor the test changed. One of the most common causes of intermittent execution is a failure to synchronize effectively. In this course, learn how to avoid flaky tests by effectively synchronizing your test code with the application state using Selenium WebDriver. Instructor Alan Richardson shares fixes to common problems and discusses the range of solutions available to help make WebDriver test automation robust and reliable. Discover how to use built-in WebDriver classes such as WebDriverWait, as well as external libraries like Awaitility. Plus, learn how to use JavascriptExecutor to run JavaScript as part of your WebDriver code; this can help you create workarounds and synchronize against internal application state.
Skills covered
SeleniumSoftware TestingAdvancedOpen SourceSoftware Development
Concepts
0. Introduction
- 01 - End flaky tests by synchronizing well
- 02 - What you should know
1. Introduction
- 03 - Why do you need synchronization
- 04 - WebDriver built-in waits
- 05 - Implicit wait vs. explicit wait
2. Synchronizing with WebDriverWait
- 06 - What is WebDriverWait
- 07 - WebDriverWait usage patterns
- 08 - ExpectedConditions
- 09 - Writing a custom expected condition
- 10 - Configuring WebDriverWait
3. Synchronizing with JavascriptExecutor
- 11 - Overview of JavaScriptExecutor
- 12 - Waiting for JavaScript
- 13 - Using JavaScript for waiting
4. Synchronized Components
- 14 - WebDriver synchronized components
- 15 - Custom synchronized components
5. Synchronization Libraries
- 16 - Introducing thewaiter
- 17 - Introducing Awaitility
- 18 - Creating your waiting libraries
6. Waiting Considerations
- 19 - Remote WebDriver
- 20 - General hints and tips
Conclusion
- 21 - Next steps