TestCon Vilnius 2018

Date: 16 October, 2018
Time: 10:00-17:30

Venue: Crowne Plaza Vilnius – M. K. Čiurlionio str. 84, Vilnius, Lithuania

Due to the limited availability of seats, early registration is strongly recommended to ensure your participation – we rely on a first-come, first-served basis.

Sela Group, Israel

Arnon Axelrod

Arnon is a Senior Consultant and Test Automation Team Lead at Sela Group. With more than 20 years of experience as a software developer, Arnon specializes in the relationships between test automation and software architecture, development practices, tools and people.
Arnon is the author of the book Complete Guide to Test Automation: Techniques, Practices, and Patterns for Building and Maintaining Effective Software Projects by Apress publishing (due late 2018); the author of the Test Automation Essentials open-source project and a contributor to the Selenium project. Arnon also blogs at https://blogs.microsoft.co.il/arnona/.


Selenium in Depth

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…


  • Selenium Overview
    • Introduction to Selenium
    • Overview of the DOM
    • Selenium Architecture: bindings and drivers
    • Overview on Selenium Grid
  • Locators
    • The basic locators
    • XPath
    • CSS Selector
    • Searching for elements within other elements
    • Finding multiple elements
    • Best practices for choosing locators
  • Delays and waits
    • 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
  • Understanding Selenium exceptions
    • NoSuchElementException
    • Understanding StaleElementReferenceException
    • Reasons for StaleElementReferenceException
    • WebDriverTimeoutException
  • Frames and Windows
    • Frames and the DOM
    • Working with multiple Frames and Windows
    • Understanding SwitchTo
    • Why do I get StaleElementReferenceException now?
    • The TestAutomationEssentials solution
  • Executing JavaScript
    • Overview on ExecteJavaScript
    • Passing arguments to ExecuteJavaScript
    • Returning values from ExecuteJavaScript
    • Passing and returning elements to/from ExecuteJavaScript
    • Executing asynchronous scripts
  • Investigating Failures
    • Taking screenshots
    • Saving the Page source
    • Getting the browser’s logs
    • Using EventFiringWebDriver to write log entries
  • Best practices (if time allows)
    • The Page Object Pattern
    • Don’t catch exceptions if you don’t have to
    • Fitting the tests to the SUT’s architecture

Course objectives

At this workshop you’ll gain better understanding of Selenium’s more advanced capabilities, and understand how different pages and JavaScript programs affect Selenium’s behavior. In addition, you’ll learn how to take advantage of some of Selenium’s less known features to help you investigate failures. With this knowledge, you’ll be able to write more reliable test automation and avoid many reasons for flickering tests.

Target audience

This workshop is intended for automation developers who already know and work with Selenium WebDriver.

Level 4 – Expert material. Assumes a deep level of technical knowledge and experience and a detailed, thorough understanding of topic. Provides expert-to-expert interaction and coverage of specialized topics.

Workshop prerequisites

  • Personal computer/Laptop
  • Google Chrome
  • IDE for your favorite programming language (most examples will be given in Java or C#, but mostly all exercises can be done in other languages)
  • Selenium WebDriver
  • ChromeDriver