This course was created with the
course builder. Create your online course today.
Start now
Create your course
with
Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Selenium WebDriver With Java
Introduction
Promo Overview Video (5:23)
About the Instructor: Alan Richardson (4:27)
Welcome Message (0:52)
Aims of this course (1:43)
Overview Of Selenium (4:23)
Ask A Question
Last Updated 20200430
Getting Started Overview
About The Tools (5:39)
FAQ: What Versions Should I Install
About the Applications under test (4:00)
Installing Java, Maven and IntelliJ - Getting Started Overview
Homebrew and Chocolatey Overview (2:05)
startUsingJavaJunit GitHub Project Overview (1:26)
Windows Install Java, Maven and IntelliJ using Chocolatey (12:55)
Mac Install Java, Maven and IntelliJ using Homebrew (9:46)
Overview of Driver Installs
Overview of Driver Installs (1:47)
Overview of startUsingSeleniumWebDriver Github Project (1:08)
Windows - Install WebDriver on Windows And Run Your First Test
Install ChromeDriver using Chocolatey (2:03)
Install GeckoDriver using Chocolatey (2:26)
Open startUsingSeleniumWebDriver project in IntelliJ and run the tests (Windows) (6:51)
Mac - Install WebDriver on Mac And Run Your First Test
Install ChromeDriver using Homebrew (1:26)
Install GeckoDriver using Homebrew (0:52)
SafariDriver is already installed on Mac (0:45)
Open startUsingSeleniumWebDriver project in IntelliJ and run the tests (Mac) (3:44)
Legacy Getting Started - Install on Windows
Install Java JDK, Maven and IntelliJ (7:09)
Install IntelliJ (3:25)
Download the `startUsingSeleniumWebDriver` project (2:03)
Install Firefox and Marionette GeckoDriver (4:31)
Install Chrome and ChromeDriver (2:52)
Run WebDriver Test From The IntelliJ IDE (2:42)
Legacy Getting Started - Install on Mac
Tip - how to right click in Finder to open folder in a terminal (1:06)
Install Java JDK, and Maven on Mac using Homebrew (2:47)
Install IntelliJ Community Edition on Mac (2:19)
Download the `startUsingSeleniumWebDriver` project and install Firefox and driver (4:46)
Install Chrome and ChromeDriver (1:52)
Run WebDriver Test From The IntelliJ IDE (1:08)
Logistics and Access to Course Materials and Source Code
Course Slides
Source Code for Examples - amended 20200220
Selenium Webdriver Java API Summary Cheatsheets
How to Fix Java Language Level Errors (3:14)
Selenium 3.0
Current Status of the course and Selenium 3
How to upgrade to Selenium 3 (only for pre version 3 students) (5:24)
Selenium 4.0
Selenium 4 Information
Create a Project
Intro To Maven (1:49)
Create A Project, the easy way, with IntelliJ (7:33)
How to add and update version of Selenium WebDriver Dependency (1:46)
Summary Of Why Maven (1:26)
Maven Troubleshooting, Tips and FAQs
Maven Troubleshooting Downloads (7:31)
Maven Troubleshooting Proxies and Download Cache Issues (4:47)
Opening and Importing Maven Projects with IntelliJ
Manage IntelliJ Project Folder Files (2:07)
Import pom.xml into IntelliJ 15 using the Open Wizard (4:28)
Begin Coding (New)
About This Section (1:46)
Create A Project (2:54)
My First Chrome Test (6:28)
My First Firefox Test (4:46)
My First Test Explained (9:03)
Begin Coding Exercise (3:15)
Basic Automation Knowledge
Basic Knowledge Intro and Exercise (2:08)
Basic Knowledge Answered (5:37)
JUnit
JUnit Intro and Example Explained (13:51)
JUnit 4 vs JUnit 5 (2:03)
How is maven getting the dependencies? (3:46)
Run maven with no 'test' in the class name (3:44)
More JUnit Theory (1:47)
A Quick Look at JUnit's source code (4:12)
Example use of @Before, @BeforeClass, @After and @AfterClass (10:26)
JUnit Exercises Introduction (2:07)
Sample JUnit Answers Explained (12:14)
A little more Hamcrest (5:10)
Notes on Using JUnit 4.11 with Hamcrest
Navigation
Navigation Introduction - the basic navigation commands (3:22)
Explain the Driver class (3:48)
Navigation Exercises (1:59)
Navigation Exercises Explained - Sample Answers (4:46)
Navigation Discussion (2:53)
IntelliJ Hints And Tips
IntelliJ project pane tips (2:43)
IntelliJ navigation find shortcut keys (2:34)
Getting Started - Final Points
Finding Elements in Google Chrome Dev Tools (1:35)
Finding Elements in Firefox Dev Tools (4:05)
Interrogation
Introduction to Interrogation (1:10)
Driver level Interrogation exercise (1:20)
Driver Level Interrogation Exercise - Sample Answers (10:29)
DOM Element Interrogation Introduction (12:15)
First findElement & By exercise (1:37)
First findElement & By Exercise - Sample Answers (7:29)
findElements Introduction (2:13)
findElements Exercise (1:18)
findElements Exercise - sample answer (5:34)
Chaining findElement and By support classes (9:35)
CSS Selectors
CSS Selectors (17:59)
CSS Selectors Exercise (1:51)
CSS Selectors Exercise - sample answers (6:26)
CSS Selectors - Paths (5:53)
CSS Selector References
XPath Selectors
XPath Introduction (8:22)
XPath Exercise (0:37)
XPath Exercise - Sample Answers (3:50)
Xpath CSS Rosetta Stone Reference (2:21)
Manipulation
Manipulation Introduction (1:51)
How to be overconfident really quickly (11:19)
WebDriver Wait Introduction (5:07)
Manipulation - Exercises
Manipulation Exercises Introduction (2:27)
The Manipulation Exercises List
Manipulation Exercises Sample Answers Introduction (1:38)
Manipulation Exercises - sample answers question one (6:28)
Manipulation Exercises - sample answers question two (2:47)
Manipulation Exercises - sample answers question three (2:22)
Manipulation Exercises - sample answers question four (4:40)
Manipulation Exercises - sample answers question five (8:32)
Manipulation Exercises - sample answers question six (3:52)
Manipulation Exercises - sample answers question seven (3:06)
Manipulation Exercises - Summary and retrospective (4:54)
Manipulation - Select Helper Class and IntelliJ API Exploration
Demo of experimenting with API using IntelliJ Evaluate Functionality (3:46)
Overview of Select Support Class and Exercise (1:59)
Select Support Class Sample Answer (2:42)
User Interactions
User Interactions Introduction and overview (6:09)
User Interactions Demo and code walkthrough (6:36)
User Interactions Exercise Introduction (2:20)
User Interactions Exercise List
User Interactions Exercise Retrospective (5:07)
Make User Interaction More Reliable By Setting Focus to the page (1:25)
Alerts (new)
Alerts Material
Alerts Overview (4:49)
Alerts Exercises Introduction (3:22)
Alerts Exercises Sample Answers (5:22)
Alerts FAQs (5:37)
Alerts Summary (0:58)
Working With Frames
Frames Introduction (4:52)
Frames a Code Introduction (7:32)
Frames Exercise (2:02)
Frames Exercises Answers (12:45)
Frames Exercises Summary Answers (2:18)
Frames Documentation
Working With iFrames
iFrames Introduction (4:07)
iFrames Code Introduction (3:26)
iFrames Exercises (1:30)
iFrames Exercises Answers (10:00)
iFrames Exercises Answers Summary (4:06)
iFrames FAQs (4:50)
iFrames Documentation
Working with Windows
Working With Windows Introduction (4:20)
Windows Code Introduction (7:28)
Windows Exercises (2:05)
Windows Exercises Answers (9:19)
Windows Exercises Summary Answers (2:37)
Windows FAQs (7:18)
Working With Windows Documentation
Managing Windows
Managing Windows Introduction (4:17)
Managing Windows Code Introduction (3:47)
Managing Windows Exercises (1:15)
Windows Exercises Answers (9:47)
Managing With Windows Documentation
Synchronisation Strategies - Introduction
Synchronisation Strategies Overview (1:30)
Exercise: feel the pain (1:25)
Exercise: feel the pain answer (2:56)
WebDriverWait to Save The Day (4:25)
Exercise: Fix the failing test (1:03)
Exercise: ExpectedConditions Answers Code Walkthrough (4:53)
Synchronisation strategies - Expected Conditions
Custom Expected Condition - slides walkthrough (8:35)
Custom Expected Condition - ExpectedConditions code walkthrough (4:10)
Custom Expected Condition - tutorial code walkthrough (10:17)
WebDriverWait ExpectedCondition Code Walkthrough Explanation (6:59)
Waiting Exercises slide (1:44)
Waiting Exercises answers - code walkthrough (4:45)
Synchronisation strategies - Fluent Waits
Using WebDriverWait Fluently overview (2:06)
Using WebDriverWait Fluently code (1:37)
FluentWait Introduction slides (2:51)
FluentWait code based overview (7:01)
FluentWait exercise (1:14)
FluentWait exercise Answers (3:09)
Synchronisation strategies - Implicit vs Explicit and Refactoring
Implicit vs Explicit Wait slides overview (5:12)
Implicit vs Explicit Wait code overview (3:49)
Refactoring WebDriverWait (1:40)
Refactoring WebDriverWait Code (2:42)
Cookies
Cookies Introduction (2:22)
Cookies Overview (5:23)
Cookies Builder (3:25)
Cookies Warning
Cookies Exercise Overview (1:30)
Cookies Exercise Answers (7:11)
Javascript
Javascript Introduction (5:58)
Javascript Example with Code Exploration (4:51)
Javascript on the page to view script and console (3:38)
Javascript Exercises (2:59)
Javascript Answers (10:31)
Javascript Async Theory (2:34)
Javascript Async Example Explained and Explored (10:18)
Javascript Async Exercise (1:55)
Javascript Async Exercise Answer (2:44)
Different Browsers
Introduction to using different browsers (3:13)
Adding a Browser Driver to the Path (3:45)
FirefoxDriver Introduction (10:09)
ChromeDriver Introduction (1:49)
ChromeDriver Overview with example code (5:05)
OperaDriver
IEDriver Overview with slides (1:28)
IEDriver Overview with code examples (1:25)
IEDriver path configuration Path or Property (2:48)
Microsoft Edge WebDriver Introduction (3:08)
Microsoft Edge WebDriver Code Introduction (3:44)
Try Different Browsers (2:27)
Different Browsers Exercises (1:37)
Headless Browsers
Headless Browsers Introduction
HtmlUnitDriver (4:19)
GhostDriver a quick introduction (5:29)
Headless ChromeDriver
Headless FirefoxDriver
Driver Managers
Driver Manager Approaches Introduction (2:04)
Driver Manager Selenium 2 Basics (6:44)
Selenium Test Code WebDriverBuilder (3:31)
Selenium Simplified Manager (4:55)
Driver Manager Exercise Introduction (1:07)
Driver Manager Exercise Answer (17:22)
Driver Manager Exercise Recap (2:51)
Taking Screenshots
Overview of Taking Screenshots
Overview of the TakesScreenshot Interface (2:01)
Create TakesScreenshot Live Example (11:24)
TakesScreenshot Example Code Overview (2:53)
TakesScreenshot Exercises (2:44)
TakesScreenshot Exercises 1 Capabilities Answers (6:14)
TakesScreenshot Exercises 2 Type Answers (11:21)
TakesScreenshot FAQs and extra docs
Page Objects
Page Objects Introduction (4:09)
Page Objects Refactoring Heuristics (2:35)
Refactoring to Page Objects A Live Example (38:35)
Refactoring to Page Objects the Live Example Summary (5:54)
Refactoring to Page Objects Exercise (1:21)
Defect Explanation for the GUI JavaScript option selection (4:16)
Refactoring to Page Objects Exercise Answers (4:11)
Loadable Component (9:19)
Slow Loadable Component (5:02)
Basics of Page Factory (4:00)
Page Factory Details (5:43)
Module: Continuous Integration
Module Material
Continuous Integration - Basics
Overview of Continuous Integration (4:46)
Overview of CI Project Code (6:20)
Overview of Github Travis CI Process (8:48)
Continuous Integration - Git and Github
About Git (3:37)
Create a Github Account (0:36)
Install Git and Github desktop (1:55)
Create a Project in Git for the CI (6:57)
Exercise Summary (1:07)
Continuous Integration - Travis
Travis CI Overview (1:42)
Create a Travis CI Build (7:12)
.travis.yml file Explained (8:17)
Travis-CI Exercise Summary (1:27)
Continous Integration - Maven and JUnit
Maven Profiles and JUnit Suites for CI (8:16)
Generating a JUnit HTML Execution Report from Maven
Continuous Integration - Jenkins
Jenkins Install (4:29)
Configure Jenkins Plugins and Tools (2:50)
Configure Jenkins Manual Job (2:28)
Continuous Integration - Case Study - In Practice
Introduction
Introduction to CI In Practice (0:35)
Jenkins Jobs (10:31)
My Continuous Integration setup explained (5:06)
Explaining and examining intermittency (4:59)
Module: Remote WebDriver and Grid
Module Material
Remote WebDriver
Overview of RemoteWebDriver (3:26)
Demo of RemoteWebDriver (5:38)
Remote Grid Pros and Cons (4:45)
Remote WebDriver Grid SAAS Providers
Selenium Grid
Selenium Grid Theory (10:56)
Local Selenium Grid Demo (10:07)
Selenium - Eco-System
Appium - Overview (4:27)
Data Driven Testing
Data Driven Testing Overview (4:14)
Data Driven Testing In Action (3:02)
Data Driven Testing with and Object Array (3:51)
Data Driven Testing with a CSV File (4:09)
Various Production And Experience Tips
IsLoaded Helper Class Approach (4:15)
Some Fluent Page Object Tips (3:29)
End Notes
End Notes (4:17)
Personal End of Course Message (1:37)
Deprecated- Continuous Integration with Git and WebDriver
What is Continuous Integration (3:22)
Example of CI - About the wdci git code project (3:11)
Example of CI - Github code local Jenkins build (2:41)
Example of CI - Github and Travis-ci (3:53)
Secret of CI - Working from command line (6:31)
Download and Run Jenkins (3:41)
Example Initial Run and Config of Jenkins (3:10)
Overview of Installing Git (3:16)
Exercise - create a Jenkins job to run wdci with firefox (1:28)
Exercise Answer - create a Jenkins job to run wdci with firefox (1:59)
Exercise - create a Jenkins job to run wdci with HtmlUnit (0:34)
Exercise Answer - create a Jenkins job to run wdci with HtmlUnit (1:46)
Exercise - create a Jenkins job to run wdci with a Driver (0:49)
Exercise Answer - create a Jenkins job to run wdci with a Driver (3:30)
Exercise - create your own Git repository (2:56)
JUnit Suites and Profiles (5:18)
Exercise - JUnit Suites and Profiles (1:48)
Jenkins Hints - JENKINS_HOME (2:36)
Slides for Continuous Integration with Git
Deprecated - Appium & WebDriver on Android
Why is this section deprecated?
About Appium (2:09)
How to Study This Section (0:52)
Installing Appium (7:57)
Appium Live Run (2:25)
Appium Live Run Changes Made to Driver (3:19)
Results of Appium Live Run
Investigate BasicTestRefactored Test Failure (1:25)
Investigate Cookies Test Failure (7:51)
Investigate User Interactions Test Failure (2:40)
Investigate Data Driven Test Failure (5:22)
About Android Virtual Devices (2:55)
Installing and Creating an Android Virtual Device (6:20)
Appium and AVD (2:25)
Demonstration Running Appium against Browser (2:44)
Appium Exercises (1:10)
Appium Slides and 'transcript'
Deprecated - Driver Manager Changes for Grid
Changing Driver for easier GRID usage (2:38)
Implementing Driver Change for easier GRID usage (3:17)
More Generic grid code in Driver (2:00)
Using the Driver config from the command line (2:18)
Using the Driver config from the IDE (5:01)
Using the Driver config from CI (1:40)
BrowserStack requires Driver changes (1:54)
Driver changes to support BrowserStack (2:31)
IntelliJ Driver config for BrowserStack, SauceLabs and TestingBot (2:34)
Basic setup of a Mac as a grid node (5:16)
Demonstration of ChromeDriver on mac and IE by default (3:39)
Using node.json to Configure a Mac grid node (5:07)
Added the grid config source files into the code.zip and repo (0:29)
Alerts (Deprecated)
Alert Overview (2:49)
Alert Exercises Introduction (1:22)
Alert Exercises List
Alert Exercises Retrospective (3:39)
Implicit vs Explicit Wait slides overview
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock