- 2.5 hours on-demand video
- Full lifetime access
- Access on mobile and TV
- Certificate of Completion
Get your team access to 4,000+ top Udemy courses anytime, anywhere.Try Udemy for Business
- Selenium Fundamentals is designed for you if you are a software quality assurance and development professional who wants to learn how to automate browser activity and web-based user interface tests with Selenium.
Let us begin our learning journey on Selenium Fundamentals. In this course, we will cover a broad range of the concepts, benefits, fundamentals, data management techniques and advantages of Selenium.
Before we learn about Selenium, let us learn about software automation and its importance to the development cycle in this video. We will also learn about Selenium WebDriver – the most commonly used automation tool. This lesson has three topics. They are:
The SDLC consists of many tasks and processes. For a very long time, most of these tasks were performed manually. Imagine the time, manpower and resources taken to work on these tasks! Automation turns a manual process or system into a system that operates automatically. Let us learn about the benefits of automation and why it is preferred over manual.
In the previous lesson, we learnt about the importance of automation and its use in testing web applications, browser drivers, verifying our environment for Selenium and so on. Let us know learn about WebDriver object in Selenium, the methods used in the WebDriver class, and navigate between web windows.
A web application starts as a single page in a browser window, but new windows and popups can be opened and closed throughout the workflow. The WebDriver class provides methods to handle navigating, resizing, and switching between windows. Let us learn to navigate through the webpages using the Selenium script.
Usually a browser window opens with the default settings. Depending on our objective, it might be necessary to change the browser window size. For example, if we have a responsive web application, we might want to change the browser size to automatically check how the application behaves in different window sizes. Let us try doing this in the coming video.
In the previous lesson, we explored the frequently used methods of the WebDriver class. We created a WebDriver instance and controlled the Google Chrome browser momentarily by navigating, switching windows, and resizing it. Let us now learn to use Chrome's Developer tools, work with different techniques to locate elements on a page and how to interact with them.
To interact with the web application, a web browser is required. We should be able to review and analyze the code behind a web page in order to understand it and define how to locate and interact with its elements for testing purposes. This video will help us to inspect a web page explains steps to instantiate a WebDriver Variable for Chrome.
The Selenium WebElement interface allows you to create variables of the WebElement type, which represent HTML elements on a web page. It also provides methods to interact with these elements. Let us learn about the frequently used methods in a WebDriver class and how to use the driver object to navigate to a desired web application URL.
We have come almost halfway through the course. In this video, let us learn to identify web elements in a web application by using effective element locators.
Automating web applications primarily involves finding elements in the DOM. Sometimes, we can't figure out the locator for the element we need, either because it is missing attributes, or there are simply too many elements with the same attributes. Let us learn to locate the web elements.
Web applications process a lot of data in the background or asynchronously before showing elements on the page. As a consequence, web applications do not have a constant speed. Let us learn to manage the automation script flow through implicit and explicit waits through this video. We will also learn to write a stable automation script by waiting for an element to be present.
As we already know, explicit waits allow us to build a test using many pre-conditions that are provided by the ExpectedConditions class. But what if these conditions are not sufficient to recreate a test scenario? The good news is that we can implement the ExpectedCondition interface to create custom wait conditions as needed. Let us learn how!
Now that we know how to use Selenium and a test framework, we can create hundreds of unstructured tests. The Page Object Model is a well-known pattern that introduces a middle layer to tests, which can help to reduce code duplication and make the code easier to understand. Let's learn about it further in this video.
It is important to know the Web Application structure before we learn the Page Object Model. By applying software development best practices, we can separate the navigation and validation tasks for automation script writing. Let us learn to do this through Page Object Model.
In the previous video, we learned the implementation of Page Object Model for a web application with one or more web pages. However, applications sometimes involve more complex structures. In this video, let us discuss the complexity of web application structures and web page layouts.
Selenium helps us automate browsers, but we want to do more than just that, like validate if the web application is working as expected. To do this, we need to add a test framework in to the mix. In this video, let learn to us combine Selenium and a test framework, and write tests to check and assert a web application's elements and behavior.
From novices to experts, every person deals with failures from time to time. Whether these errors involve flaky tests or indicate major regressions, automation engineers need to review the failures and report them accordingly. This lesson will cover the basics of determining the root cause of a test failure and determining the best course of action for correcting it.
In this lesson, let us learn to configure a Selenium Grid on local machines for testing with multiple browsers. This lesson will also cover how to connect to popular third-party testing services in the cloud.
A local Selenium Grid has a small downside: it is limited to the operating system of the local machine and the browsers supported by it, also the available RAM and CPU on that machine. A solution is to create Nodes in different machines and add them to our Hub. Let us see how we can overcome this challenge.
Some organizations find it restrictive to run a Selenium Grid on their own network as it may be too computationally intensive or bog down the network. Therefore, many companies turn to a Software-As-A-Service solutions provided by third parties. Let us learn to connect to these services as they are often just as simple as connecting to local Selenium Grids.
- Should have hand-on knowledge of web-based user interface testing with Selenium.
We’ll begin this course by understanding the importance of automating tests. Then, we will learn how to choose good selectors for navigating through your web application while highlighting best practices and techniques.
After writing your first tests, you will go through the object model to help create your own advanced test cases. You will learn how to analyze a test report, track timing errors, and separate real issues from "flaky" tests. You will also learn how to configure and connect to a local grid, a network grid, and a third-party service. By the end of the course, you will have the skills you need to run automated tests on your own web application.
About the Author
Patrick Viafore has worked in the professional software engineering field since 2007 on multiple projects such as:
Server applications running 24/7 in C++
Web Tools for internal and external use
Embedded telecommunication applications
Modularizing code and refactoring in very large code base
Continuous Integration / Continuous Delivery pipelines for products
Laying groundwork for architecture for next-generation products.
He has a strong focus on code quality, software design, and refactoring.
He demonstrates strong leadership skills by being a project lead/team lead on projects in addition to performing tasks as a Scrum Master and Agile coach.
Patrick has helped organization cross-training by leading "Cleaner Code Workshops", with topics such as unit testing and dependency breaking, as well as organized book clubs for team to help promote knowledge growth.
His professional Speaking Experiences are as follows:
Python User Group: 1-hour Talk - Selenium and Automating Testing for the Web
Python User Group: Lightning Talk on the Bottle Microframework for Web Applications
PyTennessee2017 - 45 minute talk on BDD To The Bone: Using Behave and Selenium to Test-Drive Web Applications
HSV.cpp: 15 minute Lambda Expressions in C++
His Specialties/Interests include: Software Design, Testing, Software Engineering Best Practices
Languages familiar with: Elixir, Rust, Clojure, C, Ruby, Coffeescript, Java, PHP
Languages with limited experience in: Elm, Haskell, Prolog, Io, Erlang, Scala
Databases worked with: MongoDB, MySQL, PostgreSQL.
Diego Molina is a software engineer in Test, specialized in testing tool development, advising, and training teams how to test better. He worked initially as a software developer for 8 years before switching completely to testing, where he has been during the last 7 years. He is one of the maintainers of the official Docker-Selenium project and a Selenium contributor.
He also co-created Zalenium, a dynamic, ready to use Selenium Grid. He spends most of his time working with different teams and finding ways to do UI testing in a more simple way. Additionally, he is often attending the Selenium conferences, either presenting or collaborating with the on-site workshops. You can find him often in the IRC/Slack channel for Selenium.
- Get an overview of Selenium
- Identify what to automate in a project and configure the environment
- Learn to control browser behavior and manipulate web page elements
- Understand the nuances of writing tests and creating test suites
- Create UI tests with Selenium WebDriver and analyze test results
- Troubleshoot errors in automation and build out meaningful reporting