Take this

Software Development / Web Development

Mastering Selenium Testing Tools

Test the look, feel, and performance of web applications across different web browsers using Selenium for a flawless user experience


We all have felt the need to test whether our applications are performing well across different web browsers, but the sheer tedium involved in learning test scripting languages might have stopped us from doing so. What if Selenium gave us the power to control web browsers and use them to automate web application testing? As an open source test automation toolset, Selenium makes it easier for testers to evaluate web applications without putting in any extra time and effort.

Mastering Selenium Testing Tools is all about demystifying the Selenium toolset for testing websites. Testing professionals rely on a variety of test automation tools to test web applications effectively. But these tools often fail to test applications when frequent changes and enhancements are made to the code.

A viewer with a reasonable knowledge and understanding of the core elements of Selenium will learn to verify web applications, control browsers with code, and scale up the testing environment by distributing the execution of web applications on different browsers running on different operating systems.

The course starts with Selenium IDE, a Firefox plugin that performs a simple record-and-playback of interactions with the browser. A tester aiming for professional output can use WebDriver, an advanced scripting tool that will teach you to locate the elements you need to interact with using their name, id, xPath, or CSS. Testing is all about understanding what behavior is expected. If you don't understand how it should work, how can you verify that it actually works as desired? You will learn to express the desired behavior using an executable specification and a language that your end users can read and validate. This will be done using a well-known framework for Behavior Driven Development (BDD) called Cucumber for Java.

Selenium is not just a single tool but a suite of software, each catering to the different testing needs of an organization. This course will give you a flying start towards implementing test automation using this free testing tool suite.

Full details


  • Setting Up the Work Environment
    The Course Overview
    Take a peek at the entire course and all its topics. • Introduction to the course, prerequisites, and the scope • Get a brief overview of all the sections and their content
    Selenium Tools Suite
    We’ll list and highlight a set of tools, frameworks, programming languages, and plugins to fulfill a better automated test as well as cross-browser testing with Selenium. • Take a look at Selenium tools suite and cross-browser testing with WebDriver, Selenium IDE, Selenium Server, Java, JUnit, Maven, IDEA, and Firebug • Integrating tools with Selenium WebDriver • Using some of the tools, languages, and plugins with WebDriver to make a strong Hybrid tool
    Preparing Your Environment
    Description of all the various tools that we need to set up and prepare the Selenium playground. We’ll take a look at tools such as Selenium IDE, WebDriver, Selenium Server, Java, JUnit, Maven, and IDEA. • Selenium IDE, Selenium WebDriver and Server, Programming languages (Java, C#, Ruby, Python, Perl, PHP, and JavaScript), Verification framework (JUnit, TestNG, Spock, RSpec, Nose, NUnit, and MSTest), Maven, and IntelliJ IDEA • How to configure and run WebDriver Java code using Maven • Setting up WebDriver with Java using IDEA, JUnit, and Maven
    Inspecting the Web Elements
    We’ll take a look at a few details of Firebug and Firepath, the Selenium architecture, and categorizing the tools used in the Selenium suite. • Analyzing Firebug, a Firefox plugin • How to use Firebug in the Selenium tool • Run a WebDriver Java example code for Firefox and Google Chrome
  • Selenium IDE
    A Quick Introduction to Selenium IDE
    What selenium IDE is, why to use it? Installation and setting up Selenium IDE. How to record and replay tests in Selenium IDE. Finding and locating elements in the page with Selenium IDE. • Taking a look at Selenium IDE, a Firefox plugin • Installing Selenium IDE and recording and replaying tests in Selenium IDE • Getting an introduction and overview of Selenium IDE
    Putting the Selenium IDE to Use
    Assertion and verification with Selenium IDE. Playing/running/executing the entire test case in Selenium IDE. • Understanding assertion/verification and navigation operations in Selenium IDE • How to record a page title for assertion/verification in Selenium IDE • Execute navigation as well as validation tests
    Getting to Know the Selenium IDE Better
    Pros and cons of Selenium IDE. The difference between verify and assert. Modifying test scripts / test cases in Selenium IDE after recording. Exporting recorded steps/scripts to the desired programming language. • Understand why making a test suite is a better way • Learn how to export/convert Selenium recorded code to a programming language such as Java, C#, Perl, Python, Ruby and so on • Making Selenium flexible to overcome the limitations by using different programming languages such as Java, C#, and so on with Selenium
  • Selenium WebDriver
    Introducing WebDriver
    Exploit the flexibility of Selenium WebDriver such as many programming languages, different browsers, OS, and so on; test repeat and iteration, W3C draft, Java, JUnit, and Maven. • Write customized test scripts using Selenium WebDriver • Learn to use WebDriver with Java using JUnit and Maven, a command line tool • Understand why we should use WebDriver
    Implementing Our First Example
    Demonstration of a basic Selenium example with Java and Maven. • Go through the implementation of a Selenium test case in a better way, by extraction, navigation, and validatio • Learn to write Java/JUnit/WebDriver code • Improve the initial example by refactoring the use of Page Object patterns
    WebDriver Capabilities
    WebDriver capabilities for different browsers such as Firefox, Chrome, IE, and so on. • Check out the supported browsers in Selenium • How to setup and write WebDriver / browser capabilities using Selenium code with Java • WebDriver capabilities for supported browsers, for example, Firefox, Chrome, Internet Explorer, Safari, Opera, and so on
    The WebDriver API
    Take a look at the WebDriver Java API. • Go through the most common and widely used method of WebDriver • Differentiate between the WebDriver method and the WebDriver Javadoc API • Analyze the necessary methods of the WebDriver class such as get, getTitle, findElement, findElements, manage, window, close, quit, and much more
    Brief description of locating web elements by using ID, Name, Linktext, partialLinktext, xpath, css, and so on. • Gathering knowledge to find/search web elements in the desired page • Learn to identify/locate/find a web element or a component in a page by Selenium • Finding/locating an element present in the page by searching for its name, ID, link text, class, xpath, css, and so on
    WebElements are returned using different locators. Learn how to use them effectively. • Analyze common WebElement methods in selenium tests to perform some events/actions • Understand what a web element is and how we can use it in Selenium • Take a glance at 15 different methods of WebElement in Selenium Javadoc such as click, clear, getText, sendKeys, and much more
    Page Objects
    Writing Selenium test cases in a better, organized way using Page Objects Model or Page Objects Pattern. • Go through the presentation of a page or part of the page and a way to remove the testing from the navigation • Learn to write Selenium tests using page objects • Understand the separation of navigation and validation from the code
    Advanced WebDriver
    Examples of Advanced WebDriver such as radio buttons, checkboxes, Select, Wait, Screenshot on test failure, multiple windows handling, and JavaScript. • Take a look at the advanced topics in WebDriver such as Radio buttons, Checkboxes, Select, Wait, Screenshot on failure, and much more • Go through some more advanced topics in Selenium WebDriver and learn how to implement those • Glance over the WebDriver examples and WebDriver Javadoc API for those components/elements
    Build with a Build System
    Understand continuous integration and continuous delivery. Also go through Git for source code management. • Creating a home for test script/code, updating pom.xml and committing it. Also take a look at Continuous integration with Jenkins • Learn to build the Selenium WebDriver code with build system • Build Selenium code with the build system, continuous integration, and continuous delivery
  • Behavior-driven Development
    Business Facing
    Understand what Gherkin is and take a look at terms such as ‘Given’, ‘When’, and ‘Then’. Also understand the software requirements in the perspective of business. • Convert plain text specification to test script • Implement effective communication between tester, developer, and stakeholder with a BDD tool such as Cucumber • Dive into BDD style testing using Cucumber
    An Example - Infrastructure
    Adding Maven dependencies cucumber-java and cucumber-junit on pom.xml Running Cucumber with JUnit Cucumber Runner. • Code the infrastructure for Cucumber using Java and Maven with JUnit • Learn to make Maven pom.xml for Cucumber • Run Cucumber tests with JUnit as well as Maven
    Actual Cucumber Implementation
    Writing and implementing .feature files as plain text software requirement specifications. Implementing the Step Definitions class. Regular expression in the Cucumber test. • Make the feature file and step definition file to run Cucumber tests • How to start a Cucumber test with Java using Maven • Implementing Cucumber using Java, BDD tool, and running it with JUnit and Maven
    Maintainability and Organization of the Code
    Know why better organized code helps in better maintenance of the project. • Understand how organization of codebase would be helpful for pointing and spotting the main concepts of an application • Organizing Cucumber Java code • Understand that In BDD style testing, business facing comes first, then technology facing
  • Selenium Server
    Introduction to the Selenium Server
    Understand Why, How, and When the Selenium Server is used. • Implement Remote testing using the Selenium Server • Run/execute many tests parallely on many different platforms and browsers • Get to know why the Selenium Server is mostly important for cross-browser testing
    Running Tests on the Selenium Server Internally
    Executing tests internally, running nodes on the hub. Running tests externally, such as on SauceLabs. • Writing Selenium code for executing it on the Selenium Server and externally, such as on SauceLabs • Running the Selenium Server as a hub and running as a node for registration on the hub • Modify the selenium code to run remotely as well as run externally on the cloud, such as SauceLabs
    Running Tests on the Selenium Server Externally
    Running tests externally such as on SauceLabs. • Go through Selenium scripts and run them externally such as on SauceLabs • How to execute cross-browser testing in many platforms with selenium on the cloud • Prepare the Selenium code to run externally on the cloud, for example, SauceLabs
  • A Complete Example
    Setting Up the Project
    Step into the setup and implementation of the project environment. Learn how to make the Git repository. • Observe how to make the project infrastructure using different kinds of tools such as Git, Maven, Jenkins, Cucumber, Java, JUnit, Selenium WebDriver, IDEA, and many more • Analyze the various implementation tools for setting up the Cucumber Selenium project • Output a complete, worked example with acceptance testing done using Selenium integrated with Cucumber
    Implementation of the Project
    Adding content in the feature file, making a JUnit Cucumber Runner, and creating and adding snippets in the step definition file. • Implementing the feature file according to the business logic and then writing the step definitions file • How to get missing snippets for step definitions in Cucumber test • Filling up some snippets in the feature file and step definitions file
    Continuous Integration
    What is CI? Download, install, and meet Jenkins in the browser at the port 8080. • Implement Jenkins to run Cucumber Selenium Maven project for continuous integration • Learn to prepare Jenkins for your Maven project and poll the modified latest code from Git • Device Jenkins, CI for your Maven project to execute Selenium tests periodically
    Implementing Tests for the Web Application
    UI testing with Cucumber and Selenium. Modify pom.xml for Cucumber and Selenium. Implement page objects for a small web app. • Get a grip on acceptance testing for your web app with a hybrid tool (Cucumber + Selenium) using BDD • Test the web app using Cucumber integrated with Selenium WebDriver with Java • Executing acceptance test in the perspective of Behavior-Driven Development with cucumber integrated with Selenium using Java and Maven
  • Advanced Usage and Beyond
    Advanced Usage of Selenium
    Some common advanced usage of Selenium is Explicit Waits, taking a screenshot, and advanced user interactions, mainly keyboard and mouse. Practical experience includes semantic verification, performing an actual transaction, for example, purchase, automation of service manager, and creating and adding user automatically. • Advanced and complicated usage and interactions of Selenium • Complex, complicated, and advanced usage of Selenium • Web based mobile app testing using AndroidDriver, iPhoneDriver, iOSDriver, Selendroid, and Appium. Selenium is used for various testing by integrating with other tools such as Sikuli, AutoIt, and so on
    A Look Back
    Take a look at everything that was covered throughout the course and at channels to gain more knowledge. • Revise what you learned throughout all the sections • Understand the importance of practice and where you should go from here onwards • A look back


  • Java

Similar Courses

More Courses by this Instructor