Chapter 1: Getting Started
Configuring the Selenium WebDriver test development environment for Java with Eclipse and Maven
Using Ant for the Selenium WebDriver test execution
Configuring Microsoft Visual Studio for Selenium WebDriver test development
Configuring Selenium WebDriver for Python and Ruby
Setting up Internet Explorer Driver Server
Setting up ChromeDriver for Google Chrome
Setting up Microsoft WebDriver for Microsoft Edge
Chapter 2: Finding Elements
Using browser tools for inspecting elements and page structure
Finding an element using the findElement method
Finding elements using the findElements method
Finding elements by tag name
Finding elements using XPath
Finding elements using CSS selectors
Locating elements using text
Finding elements using advanced CSS selectors
Chapter 3: Working with Elements
Automating textboxes, text areas, and buttons
Checking an element's text
Checking an element's attribute and CSS values
Automating dropdowns and lists
Checking options in the Select element
Checking selected options in dropdowns and lists
Automating radio buttons and radio groups
Chapter 4: Working with Selenium API
Checking an element's presence
Checking an element's state
Using Advanced User Interactions API for mouse and keyboard events
Performing double-click on an element
Performing drag-and-drop operations
Working with context menus
Executing the JavaScript code
Capturing screenshots with Selenium WebDriver
Maximizing the browser window
Working with browser navigation
Working with WebDriver events
Chapter 5: Synchronizing Tests
Synchronizing a test with an implicit wait
Synchronizing a test with an explicit wait
Synchronizing a test with custom-expected conditions
Synchronizing a test with FluentWait
Chapter 6: Working with Alerts, Frames, and Windows
Handling a simple JavaScript alert box
Handling a confirm and prompt alert box
Identifying and handling frames
Identifying and handling a child window
Identifying and handling a window by its title
Identifying and handling a pop-up window by its content
Chapter 7: Data-Driven Testing
Creating a data-driven test using JUnit
Creating a data-driven test using TestNG
Reading test data from a CSV file using JUnit
Reading test data from an Excel file using JUnit and Apache POI
Creating a data-driven test in NUnit
Creating a data-driven test in MSTEST
Creating a data-driven test in Ruby using Roo
Creating a data-driven test in Python using DDT
Chapter 8: Using the Page Object Model
Using the PageFactory class for exposing the elements on a page
Using the PageFactory class for exposing an operation on a page
Using the LoadableComponent class
Implementing nested Page Object instances
Implementing the Page Object model in .NET
Implementing the Page Object model in Python
Implementing the Page Object model in Ruby using the page-object gem
Chapter 9: Extending Selenium
Creating an extension class for web tables
Creating an extension for the jQueryUI tab widget
Implementing an extension for the WebElement object to set the element attribute values
Implementing an extension for the WebElement object to highlight elements
Creating an object map for Selenium tests
Capturing screenshots of elements in the Selenium WebDriver
Comparing images in Selenium
Measuring performance with the Navigation Timing API
Chapter 10: Testing HTML5 Web Applications
Automating the HTML5 video player
Automating interaction on the HTML5 canvas element
Web storage – testing local storage
Web storage – testing session storage
Cleaning local and session storage
Chapter 11: Behavior-Driven Development
Using Cucumber-JVM and Selenium WebDriver in Java for BDD
Using SpecFlow.NET and Selenium WebDriver in .NET for BDD
Using Capybara, Cucumber, and Selenium WebDriver in Ruby
Using Behave and Selenium WebDriver in Python
Chapter 12: Integration with Other Tools
Configuring Jenkins for continuous integration
Using Jenkins and Maven for Selenium WebDriver test execution in continuous integration
Using Ant for Selenium WebDriver test execution
Using Jenkins and Ant for Selenium WebDriver test execution in continuous integration
Automating a non-web UI in Selenium WebDriver with AutoIt
Automating a non-web UI in Selenium WebDriver with Sikuli
Chapter 13: Cross-Browser Testing
Setting up Selenium Grid Server for parallel execution
Adding nodes to Selenium Grid for cross-browser testing
Creating and executing the Selenium script in parallel with TestNG
Creating and executing the Selenium script in parallel with Python
Using Cloud tools for cross-browser testing running tests in the Cloud
Running tests in headless mode with PhantomJS
Chapter 14: Testing Applications on Mobile Browsers
Setting up Appium for testing mobile applications
Testing mobile web applications on iOS using Appium
Testing mobile web applications on Android using Appium