Mastering Selenium in Java
(including Maven, JUnit, and Jenkins) - 28 hours

Course available as online Interactive
Course available to schedule for your team
Learn More

This practical course establishes a strong foundation for developing test automation scripts and frameworks tailored for web-based applications. You'll delve into Selenium WebDriver, the de facto standard library for managing browsers, enabling automated interactions with the browser's user interface. Through this course, you'll gain mastery of best practices in test automation, ensuring that your scripts are not only robust but also easy to maintain. Within a Maven project, you'll merge Selenium with JUnit, a widely-used framework for unit and functional test automation, preparing your scripts to execute seamlessly from the command line. Additionally, you'll acquire essential insights into Continuous Integration (CI) practices, leveraging Jenkins, the most popular CI server, to execute your tests efficiently.


This comprehensive course is designed for individuals aiming to leverage their Java skills for the highly sought-after profession of test automation engineering


Proficiency in Java with IDE of your choice (Eclipse is preferred)
We recommend completing our course “Mastering Java for Testers.
Familiarity with HTML is preferred but not mandatory

What participants will learn?
  1. Creating Maven projects integrating Selenium WebDriver and JUnit
  2. Implementing JUnit framework for functional testing
  3. Utilizing Selenium WebDriver for effective browser management
  4. Tools facilitating the identification of web elements on web pages
  5. Automating interactions with standard web controls
  6. Synchronizing script execution with browser states
  7. Implementing the PageObject pattern for enhanced script maintainability
  8. Implementing Continuous Integration (CI) using Jenkins

Course Outline
  • Maven as a software project management tool
    • Maven lifecycles
    • Phases and goals
    • Dependency management with pom.xml
    • Maven project structure
  • JUnit as a functional testing framework
    • JUnit test classes and test methods
    • JUnit test structure
    • JUnit annotations
    • Assertions
    • Data-driven parameterized tests
  • Selenium WebDriver
    • Selenium architecture: direct and remote execution
    • WebDriver and WebElement interfaces
    • Cross-browser testing
    • Screenshots of visible area and web elements
    • HTML, CSS, and JavaScript – short introduction
    • Web element locators including XPath and CSS
    • Relative locators
    • Tools supporting locator selection: ChroPath and Ranorex Selocity
    • Checking text and links
    • Working with edit boxes, dropdown menus, radio buttons, and check buttons
    • Working with multiple tabs and multiple browser windows
    • Checking element existence and states
    • Working with HTML tables
    • Automating mouse movements
    • Handling alerts
    • Synchronization: implicit wait, explicit wait, fluent wait, and fixed wait
    • PageObject pattern for script maintainability
    • RemoteWebDriver for running tests on a remote machine
  • Jenkins
    • Continuous integration (CI) practice
    • Jenkins configuration
    • Running Selenium scripts in a Freestyle project
    • Jenkins build triggers
    • Job scheduling
    • Running Selenium scripts in a Maven project
    • Reporting test results