Selenium WebDriver with Java - Novice to Ninja Plus Interview Video description Learn the methods and tools to test real-world web applications from scratch with Selenium WebDriver
About This Video
Get a solid understanding of web automation frameworks Learn how to lead a Selenium automation project from scratch on your own Develop skills and confidence to pass any Selenium automation interviews In Detail
Selenium WebDriver is an open-source automation tool that works easily across multiple OS and browsers and supports multiple frameworks. There is no doubt that these qualities have made Selenium WebDriver one of the most powerful tools to test web applications. This course will teach you the essential Selenium WebDriver skills that will help you start your career in automation testing.
This course starts by taking you through the basics of Selenium WebDriver and helping you with the installation process of Java. Next, you will get a solid understanding of Java concepts and the TestNG framework. Moving along, you will learn to work with advanced reporting and use log47 to log messages. Next, you will get to grips with the page object model, page factory, and data-driven framework, and execute tests on a remote machine using Selenium Grid 2.0.
Later, you will learn to use Maven to manage builds and implement continuous integration with Jenkins. Toward the end, you will learn to execute database and performance test cases and run behavior-driven testing using Cucumber and Gherkin.
By the end of this course, you will have all the necessary skills needed to perform automation testing on web applications with Selenium WebDriver using Java.
Who this book is for
Whether you are new to software testing or an experienced quality assurance professional who is looking to learn Selenium to step into automation testing, this course is for you. Prior experience in automation or coding is not required as every topic in this course is taught from scratch.
Show and hide more
Table of Contents Chapter 1 : Selenium Introduction
Course Outcome
Instructor Introduction
Why Selenium?
Selenium WebDriver Architecture - How the WebDriver Works?
How to Reach Me Anytime and Ask Questions?
Chapter 2 : Setup and Installation of Required Tools and Plug-Ins
Java Overview and Installation
Java Environment Setup – Mac
Java Environment Setup – Windows
Installing Eclipse – Windows
Eclipse Installation – Mac
Installing Maven Plug-ins
Chapter 3 : Java Concepts - Data Types
First Program and Some Tips
Variables and Data Types
Default Variable Values
Reference Data Type - Strings Example
String Methods - Part 1
String Methods - Part 2
Arrays
Chapter 4 : Classes and Methods – Object-Oriented Concepts
Methods Introduction
Methods - Practical Example
Understanding Return Type
Class Introduction
Chapter 5 : Getters and Setters - Practical Examples
Getters-Setters and This Keyword - Part 1
Getters-Setters and This Keyword - Part 2
Getters-Setters and This Keyword - Part 3
Constructors
Chapter 6 : How to Inspect Elements on Different Browsers - Add-Ons
Introduction
How to Inspect Elements Using Firefox DevTools?
Firefox Add-on - Try XPath
Inspecting Elements Using Chrome DevTools
Chrome Extension - Part 1
Chrome Extension - Part 2
Tricks to Generate XPath
Best Element Inspect Tool
Chapter 7 : Selenium WebDriver – Setup
Setting Up Selenium WebDriver Environment
Adding Selenium WebDriver Javadoc
Selenium 3.x Update
Chapter 8 : Selenium WebDriver - Running Tests on Various Browsers
Running Tests on Firefox
Running Tests on Google Chrome
Running Tests on Internet Explorer (IE)
Resolving Internet Explorer (IE)-related Issues
Requirements to Run Tests on Safari
Running Tests on Safari
Setting Drivers in the System Path – Mac
How to Set Drivers in the System Path – Windows
Interview Questions
Chapter 9 : Multiple Ways to Locate Elements
Finding Elements Using id and XPath
Finding Elements Using Name
Finding Elements Using LinkText and PartialLinkText
Finding Elements Using Class Name
Finding Elements Using TagName and Interview Question
Chapter 10 : Cascading Style Sheets (CSS) Selectors - Advanced Locators
Using Id with Cascading Style Sheets (CSS) Selectors to Find Elements
Using Multiple Cascading Style Sheets (CSS) Classes to Find Elements
Using Wildcards with Cascading Style Sheets (CSS) Selectors
Finding Child Nodes using Cascading Style Sheets (CSS) Selectors
Chapter 11 : XPath - Advanced Locators
Difference Between Absolute and Relative XPath
Building an Effective XPath?
Using Text to Build an Effective XPath
Building XPath Using the Contains Keyword
Building XPath Using the Starts-With Keyword
Finding Parent and Sibling Nodes
Exercise with Solution + Interview Question
Chapter 12 : Selenium WebDriver - Working with WebElements
JUnit Introduction
Clicking and Typing on a Web Element
Navigating Between Web Pages
Finding the State of a WebElement (Disabled and Enabled Elements)
Working with Radio Buttons and Checkboxes
Working with a List of Elements
Understanding Drop-down Elements
Working with a Drop-Down Element
Understanding Multiple Select Elements
Working with Multiple Select
How to Work with Hidden Elements
Working with Hidden Elements
Chapter 13 : Working with Profiles and Options
Firefox Profiles Introduction
Using Firefox Profile in Web Automation Codes
Chrome Options - Bringing up Chrome with Extensions
Chapter 14 : Selenium WebDriver - Useful Methods and Properties
Getting the Text on an Element
Getting Value of an Element Attribute
Generic Method to Find Elements
Generic Method to Find Element List
Checking Whether the Element is Present
Generic Methods - Code Refactoring
Chapter 15 : Selenium WebDriver - Wait Types - Handling Synchronization Issues
Implicit Wait Versus Explicit Wait
Implicit Wait
Explicit Wait
Generic Method to Work with Explicit Wait - Part 1
Generic Method to Work with Explicit Wait - Part 2
Interview Questions
Chapter 16 : Selenium WebDriver - Advanced Interactions
Calendar Selection - Working with Date Pickers
Calendar Selection – Practical Example
Calendar Selection – Real-Time Example
AutoComplete - Working with Dynamic Dropdowns
AutoComplete - Additional Examples
Executing JavaScript Commands
Chapter 17 : Selenium WebDriver - JavaScript Execution
Executing JavaScript Commands
Finding the Size of the Window
Scrolling Element into View
Clicking Element Using JavaScript Execution - Part 1
Clicking Element Using JavaScript Execution - Part 2
Chapter 18 : Selenium WebDriver - Switch Window and iFrames
Switching Window Focus
Switching to Window
Working with iFrames
Switching to iFrame
Handling JavaScript Pop-up
Chapter 19 : Selenium WebDriver - Working with Actions Class
Mouse Hover Actions
Dragging and Dropping an Element on a Web Page
Working with Sliders Actions
Chapter 20 : Selenium WebDriver - Keypress Events
Introduction
Pressing Keyboard Keys
Sending a Key Combination
Keypress Events Using Actions Class
Chapter 21 : Popular Interview Questions - Selenium WebDriver Exceptions
NoSuchElementException
Element Not Clickable at Point Exception
Stale Element Exception - Part 1
Stale Element Exception - Part 2
Element Not Interactable Exception
Chapter 22 : Automation Framework
Automation Framework Introduction
Page Object Model (POM)
Creating Object Repository and Page Class
Page Factory
Finding All Links on a Web Page – BONUS
Chapter 23 : Logging Infrastructure - Using Log4j2
Log4j2 Introduction
Using the Default Configuration
Using Configuration File - Console Logging
Using Configuration File - File Logging
Working with Custom Loggers
Test Case Example using Log4j2
Chapter 24 : TestNG Setup
TestNG Introduction
TestNG Setup
Adding TestNG Javadoc to Eclipse
Chapter 25 : TestNG - Annotations and Assertions
First TestNG Class - Test Annotation
TestNG Asserts
TestNG Soft Asserts
Method and Class Annotations
Running a Test Suite
@BeforeSuite and @AfterSuite Annotations
@BeforeTest and @AfterTest Annotations
Chapter 26 : TestNG - Advanced Features
Prioritizing Test Methods in a Desired Sequence
Grouping Test Methods - Part 1
Grouping Test Methods - Part 2
Understanding Dependent Test Methods
Disabling and Adding Timeout to Test Methods
Preserving Order of Execution
Chapter 27 : TestNG - Parameters and Parallel
Providing Parameters to the Test Methods
Running Tests, Classes, and Methods in Parallel
Chapter 28 : TestNG - Parameters and Parallel - Practice Exercise
TestNG Practice Exercise Question
Practice Exercise Solution - Selenium WebDriver Practical Example
Chapter 29 : TestNG - DataProviders
DataProviders - Part 1
DataProviders - Part 2
Chapter 30 : TestNG - ITestResult
ITestResult Interface
Taking a Screenshot on Failure
Chapter 31 : TestNG - Listeners
IInvokedMethodListener
ITestListener
ISuiteListener
TestNG Listeners - Code Refactoring
Chapter 32 : TestNG - Reporter Logs and Hypertext Markup Language (HTML) Reports
TestNG Reporters and Logs
Chapter 33 : Extent Reports - Advanced Reporting
Advanced Reporting Introduction and Features
Advanced Reporting - Practical Example
Attaching Screenshots to Advanced Reports
Multiple Test Cases
Reporting with Page Object Model (POM)
Exercise with Solution
Chapter 34 : Selenium WebDriver – Data-Driven Testing
Data-Driven Testing Setup
Reading Data from an Excel File
Reading Multiple Datasets from an Excel File
Multiple Datasets Test Case - Practical Example
Writing Data to an Excel File
Chapter 35 : Selenium WebDriver - File Upload and Windows Authentication
Uploading Files on Windows – Robot
Uploading Files on Mac – Robot
AutoIT Installation and Finder Tool
Uploading Files on Windows – AutoIT
Handling Windows Authentication Using AutoIT
Chapter 36 : WebDriver Event Listener
WebDriver Event Listener - Part 1
WebDriver Event Listener - Part 2
Chapter 37 : Cross-Browser Testing Using Selenium Grid 2.0
Selenium Grid Introduction
Hub and Nodes Configuration - Part 1
Hub and Nodes Configuration - Part 2
Grid Configuration using JSON File - Part 1
Grid Configuration using JSON File - Part 2
Running Test Case on the Selenium Grid Environment
Real-Time Practical Example of Selenium Grid
Chapter 38 : Build Management with Maven
Maven Features and Advantages
Maven Setup and Installation (on Mac and Windows)
Creating and Importing a Maven Project
Maven Local and Central Repositories
Project Object Model (POM) Explanation - Core of Maven
Building Lifecycle and Maven Commands
Maven Project Migration
Maven TestNG Integration and Maven Profiles
Finding TestNG Reports in Maven
Chapter 39 : Git and GitHub - Version Control System
Git and GitHub Introduction
Git Installation on Windows
Git Installation on macOS
Creating Local Git Repository - Staging and Commit
File Check in - GitHub Remote Repository
Advantages and Importance of Git Branches
File Check in and Resolve Merge Conflicts – Real-time Example
Chapter 40 : Continuous Integration with Jenkins
Jenkins Features and Advantages
Jenkins Setup and Installation - Generic WAR File
Jenkins Setup and Installation - Windows
Jenkins Setup and Installation - macOS
Jenkins Configuration
Securing Jenkins
Jenkins Plug-ins Management
Building a Freestyle Project Using Jenkins
Building a Remote Project Using Git and Jenkins
Jenkins Scheduling Builds on a Git Repository
Chapter 41 : Selenium WebDriver Interview Questions - Real-time
Cracking Selenium WebDriver Interviews - Part 1
Cracking Selenium WebDriver Interviews? - Part 2
Chapter 42 : Database Testing
Testing MySQL and Oracle
Testing MongoDB
Chapter 43 : Performance Testing
Performance Testing Going the System Way
Performance Testing by Making a Stopwatch
Chapter 44 : Sauce Labs Integration
Sauce Labs Introduction
Getting the Access Key
Sauce Labs Practical Example
Chapter 45 : Selenium IDE/WebDriver - Basics
Installing Selenium IDE and Writing Your First Script
Generating WebDriver Code Using Selenium IDE
Assert versus Verify - Selenium IDE Commands
Chapter 46 : Conditional Statements and Loops
Conditional Statement
Switch Statement
While Loop
For Loops
Chapter 47 : Static Keyword
Static Keyword - Part 1
Static Keyword - Part 2
Chapter 48 : Practice Exercise with Solution + Interview Question
Practice Exercise with Solution + Interview Question
Practice Exercise + Interview Question - Reverse Characters of a String
Practice Exercise + Interview Solution - Reverse Characters of a String
Chapter 49 : Java Concepts - Object-Oriented Programming Concepts
Inheritance
Access Modifiers and Packages
Abstract Class - Abstraction Part 1
Interface - Abstraction Part 2
Method Overloading
More on Method Overloading
Method Overriding
Chapter 50 : Handling Exceptions
Handling Exceptions – Checked
Handling Exceptions – Run Time
Reading Properties File
Chapter 51 : Java Advanced - Collections Framework
ArrayList
LinkedList
Array List versus Linked List
Sets
Maps
Different Kinds of Maps