Selenium is a set of tools and libraries supporting browser automation and it is mainly used for web applications testing. One of the Selenium's components is a Selenium WebDriver that provides client library, the JSON wire protocol (protocol to communicate with the browser drivers) and browser drivers. One of the main advantages of Selenium WebDriver is that it supported by all major programming languages and it can run on all major operating systems. In this tutorial I will go through the setup of the test automation project for the popular TodoMVC application using Gradle with Java, JUnit 5 and Selenium Jupiter. You will learn about Selenium's PageFactory to implement Page Object pattern. You will also learn about parallel test execution, test execution order, parameterized tests and much more.