Sela

Selenium in Depth Workshop

Description
Selenium is a very simple and straight-forward technology to use. However, if you dig deeper into it, you’ll find some hidden gems that can be very handy in making your tests more robust and maintainable. In addition, knowing Selenium more deeply will help you investigate and understand failures, and resolve many of them which you might consider as not-reproducible or unexplained. Even if you think that you know Selenium, you’d be surprised by some of the demos! In this workshop we’ll dive deeply into Selenium and understand: * How it works * The difference between ImplicitWait and Explicit wait – when to use what (if any), and how it’s related to the web-page’s JavaScript * The different exception types that can be thrown from Selenium, and what they mean * How to collect valuable information that will help you investigate failing tests, including the browser logs, screenshots, page source and more * How to execute JavaScript code from your tests, synchronously or asynchronously, and how to pass parameters to it * And more… Note: This course mainly focuses on the technical sides of Selenium. For a course on best practices for test automation see the course Advanced Test Automation Practices. It is recommended to combine these courses together.

Topics

Introduction to Selenium
Overview of the DOM
Selenium Architecture: bindings and drivers
XPath and CssSelectors – when to use and why
Searching for elements within other elements
Finding multiple elements
Best practices for choosing locators
Why is my browser stuck?
Are waits always necessary?
Understanding browser’s asynchronous operations
The drawbacks of fixed delays
When Implicit Wait helps and when it doesn’t?
How FindElements behaves when ImplicitWait is used?
Using Explicit Wait
Writing custom wait conditions
NoSuchElementException
Understanding StaleElementReferenceException
Reasons for StaleElementReferenceException
WebDriverTimeoutException
Frames and the DOM
Working with multiple Frames and Windows
Understanding SwitchTo
Why do I get StaleElementReferenceException now?
The TestAutomationEssentials solution
Overview on ExecteJavaScript
Passing arguments to ExecuteJavaScript
Returning values from ExecuteJavaScript
Passing and returning elements to/from ExecuteJavaScript
Executing asynchronous scripts
Taking screenshots
Saving the Page source
Getting the browser’s logs
Using EventFiringWebDriver to write log entries
Overview on POM
Do’s and Don’ts
Nested Page Objects
Reusable Page Objects
Page Objects and Inheritance
Limitations of Page Objects and alternatives
Selenium Grid Architecture
When to use Selenium Grid and alternative solutions
Selenium Grid cloud providers
Exception handling tips
Fitting the tests to the SUT’s architecture

רוצה לדבר עם יועץ?

האם אתה בטוח שאתה רוצה לסגור את הטופס ולאבד את כל השינויים?