Selenium WebDriver 3 practical guide : end-to-end automation testing for web and mobile browsers with Selenium WebDriver / Unmesh Gundecha, Satya Avasarala.
2018
TK5105.882
Formats
Format | |
---|---|
BibTeX | |
MARCXML | |
TextMARC | |
MARC | |
DublinCore | |
EndNote | |
NLM | |
RefWorks | |
RIS |
Linked e-resources
Details
Title
Selenium WebDriver 3 practical guide : end-to-end automation testing for web and mobile browsers with Selenium WebDriver / Unmesh Gundecha, Satya Avasarala.
Author
Edition
Second edition.
ISBN
9781788996013 (electronic bk.)
1788996011 (electronic bk.)
9781788999762
1788999762 (Trade Paper)
9781788999762
1788996011 (electronic bk.)
9781788999762
1788999762 (Trade Paper)
9781788999762
Published
Birmingham, UK : Packt Publishing, 2018.
Language
English
Description
1 online resource (1 volume) : illustrations
Other Standard Identifiers
9781788999762
Call Number
TK5105.882
System Control No.
(OCoLC)1050953501
Summary
Real-world examples of cross-browser, mobile, and data-driven testing with all the latest features of Selenium WebDriver 3 Key Features Unlock the full potential of Selenium to test your web applications Use Selenium Grid for faster, parallel running, and cross-browser testing Test iOS and Android Apps with Appium Book Description Selenium WebDriver is an open source automation tool implemented through a browser-specific driver, which sends commands to a browser and retrieves results. The latest version of Selenium 3 brings with it a lot of new features that change the way you use and setup Selenium WebDriver. This book covers all those features along with the source code, including a demo website that allows you to work with an HMTL5 application and other examples throughout the book. Selenium WebDriver 3 Practical Guide will walk you through the various APIs of Selenium WebDriver, which are used in automation tests, followed by a discussion of the various WebDriver implementations available. You will learn to strategize and handle rich web UI using advanced WebDriver API along with real-time challenges faced in WebDriver and solutions to handle them. You will discover different types and domains of testing such as cross-browser testing, load testing, and mobile testing with Selenium. Finally, you will also be introduced to data-driven testing using TestNG to create your own automation framework. By the end of this book, you will be able to select any web application and automate it the way you want. What you will learn Understand what Selenium 3 is and how is has been improved than its predecessor Use different mobile and desktop browser platforms with Selenium 3 Perform advanced actions, such as drag-and-drop and action builders on web page Learn to use Java 8 API and Selenium 3 together Explore remote WebDriver and discover how to use it Perform cross browser and distributed testing with Selenium Grid Use Actions API for performing various keyboard and mouse actions Who this book is for Selenium WebDriver 3 Practical Guide is for software quality assurance/testing professionals, software project managers, or software developers interested in using Selenium for testing their applications. Prior programming experience in Java is necessary.
Note
Previous edition published: 2014.
Bibliography, etc. Note
Includes bibliographical references.
Formatted Contents Note
Cover
Title Page
Copyright and Credits
Packt Upsell
Contributors
Table of Contents
Preface
Chapter 1: Introducing WebDriver and WebElements
Selenium Testing Tools
Selenium WebDriver
Selenium Server
Selenium IDE
Differences between Selenium 2 and Selenium 3
Handling the browser
Having better APIs
Having developer support and advanced functionalities
Testing Mobile Apps with Appium
Setting up a project in Eclipse with Maven and TestNG using Java
WebElements
Locating WebElements using WebDriver
The findElement method
The findElements method
Inspecting Elements with Developer Tools
Inspecting pages and elements with Mozilla Firefox
Inspecting pages and elements in Google Chrome with Developer Tools
Using the By locating mechanism
The By.id() method
The By.name() method
The By.className() method
The By.linkText() method
The By.partialLinkText() method
The By.tagName() method
The By.xpath() method
The By.cssSelector() method
Interacting with WebElements
Getting element properties and attributes
The getAttribute() method
The getText() method
The getCssValue() method
The getLocation() method
The getSize() method
The getTagName() method
Performing actions on WebElements
The sendKeys() method
The clear() method
The submit() method
Checking the WebElement state
The isDisplayed() method
The isEnabled() method
The isSelected() method
Summary
Questions
Further information
Chapter 2: Different Available WebDrivers
Firefox Driver
Using GeckoDriver
Using Headless Mode
Understanding the Firefox profile
Adding the extension to Firefox
Storing and retrieving a profile
Dealing with Firefox preferences
Setting preferences
Understanding frozen preferences
Chrome Driver.
Using Headless Mode
Using Mobile Emulation for testing mobile web applications
Adding ChromeExtensions
InternetExplorerDriver
Writing your first test script for the IE browser
Understanding IEDriver capabilities
Edge Driver
Writing your first test script for the Edge browser
Safari Driver
Writing your first test script for the Safari browser
Summary
Questions
Further information
Chapter 3: Using Java 8 Features with Selenium
Introducing Java 8 Stream API
Stream.filter()
Stream.sort()
Stream.map()
Stream.collect()
Stream.min() and Stream.max()
Stream.count()
Using Stream API with Selenium WebDriver
Filtering and counting WebElements
Filtering element attributes
Using the Map function to get the text value from elements
Filtering and performing actions on WebElements
Summary
Questions
Further information
Chapter 4: Exploring the Features of WebDriver
Taking screenshots
Locating target windows and Frames
Switching among windows
Switching between frames
Handling alerts
Exploring Navigate
Waiting for WebElements to load
Implicit wait time
Explicit wait time
Handling cookies
Summary
Questions
Further information
Chapter 5: Exploring Advanced Interactions of WebDriver
Understanding the build and perform actions
Learning mouse based interactions
The moveByOffset action
The click at current location action
The click on a WebElement action
The click and hold at current location action
The click and hold a WebElement action
The release at current location action
The release on another WebElement action
The moveToElement action
The dragAndDropBy action
The dragAndDrop action
The double click at current location action
The double click on WebElement action.
The context click on WebElement action
The context click at current location action
Learning keyboard-based interactions
The keyDown and keyUp actions
The sendKeys method
Summary
Questions
Further information
Chapter 6: Understanding WebDriver Events
Introducing the eventFiringWebDriver and eventListener classes
Creating an instance of EventListener
Implementing WebDriverEventListener
Extending AbstractWebDriverEventListener
Creating a WebDriver instance
Creating EventFiringWebDriver and EventListener instances
Registering EventListener with EventFiringWebDriver
Executing and verifying the events
Registering multiple EventListeners
Exploring different WebDriver event listeners
Listening for WebElement value changes
Listening for the clicked WebElement
Listening for a WebElement search event
Listening for browser back-navigation
Listening for browser forward-navigation
Listening for browser NavigateTo events
Listening for script execution
Listening for an exception
Unregistering EventListener with EventFiringWebDriver
Performing accessibility testing
Capturing page-performance metrics
Summary
Questions
Further information
Chapter 7: Exploring RemoteWebDriver
Introducing RemoteWebDriver
Understanding Selenium Standalone Server
Downloading Selenium Standalone Server
Running the server
Understanding the RemoteWebDriver client
Converting an existing test script to use the RemoteWebDriver server
Using RemoteWebDriver for Firefox
Using RemoteWebDriver for Internet Explorer
Understanding the JSON wire protocol
Summary
Questions
Further information
Chapter 8: Setting up Selenium Grid
Exploring Selenium Grid
Understanding the hub
Understanding the node
Modifying the existing test script to use Selenium Grid.
Requesting for non-registered capabilities
Queuing up the request if the node is busy
Dealing with two nodes with matching capabilities
Configuring Selenium Grid
Specifying node-configuration parameters
Setting supported browsers by a node
Setting node timeouts
Setting the limit on browser instances
Reregistering the node automatically
Setting node health-check times
Unregistering an unavailable node
Setting the browser timeout
Hub-configuration parameters
Waiting for a match of the desired capability
Customized CapabilityMatcher
WaitTimeout for a new session
Different ways to specify the configuration
Using cloud-based grids for cross-browser testing
Summary
Questions
Further information
Chapter 9: The PageObject Pattern
Creating test cases for our WordPress blog
Test case 1
adding a new post to our WordPress blog
Test case 2
deleting a post from our WordPress blog
Test case 3
counting the number of posts on our WordPress blog
What is the PageObject pattern?
Using the @FindBy annotation
Understanding PageFactory
Good practices for the PageObjects design
Think of a web page as a services provider
Always look for implied services
Using PageObjects within a PageObject
The AddNewPost PageObject
The AllPostsPage PageObject
Think of methods in PageObjects as services and not as user actions
Identifying some WebElements on the fly
Keeping the page-specific details off the test script
Understanding loadable components
Working on an end-to-end example of WordPress
Looking at all the PageObjects
The AdminLoginPage PageObject
The AllPostsPage PageObject
The AddNewPostPage PageObject
The EditPostPage PageObject
The DeletePostPage PageObject
Looking at the test cases
Adding a new post
Editing a post.
Deleting a post
Counting posts
Summary
Questions
Further information
Chapter 10: Mobile Testing on iOS and Android using Appium
Different forms of mobile applications
Available software tools
Automating iOS and Android tests using Appium
Automating iOS Application tests
Automating Android application tests
Prerequisites for Appium
Setting up Xcode
Setting up Android SDK
Creating the Android Emulator
Installing Appium
Automating for iOS
Automating for Android
Using Device Cloud to run tests on Real Devices
Summary
Questions
Further information
Chapter 11: Data-Driven Testing with TestNG
Overview of data-driven testing
Parameterizing Tests using suite parameters
Parameterizing Tests with a Data Provider
Reading data from a CSV file
Reading data from an Excel file
Summary
Questions
Further information
Assessments
Other Books You May Enjoy
Index.
Title Page
Copyright and Credits
Packt Upsell
Contributors
Table of Contents
Preface
Chapter 1: Introducing WebDriver and WebElements
Selenium Testing Tools
Selenium WebDriver
Selenium Server
Selenium IDE
Differences between Selenium 2 and Selenium 3
Handling the browser
Having better APIs
Having developer support and advanced functionalities
Testing Mobile Apps with Appium
Setting up a project in Eclipse with Maven and TestNG using Java
WebElements
Locating WebElements using WebDriver
The findElement method
The findElements method
Inspecting Elements with Developer Tools
Inspecting pages and elements with Mozilla Firefox
Inspecting pages and elements in Google Chrome with Developer Tools
Using the By locating mechanism
The By.id() method
The By.name() method
The By.className() method
The By.linkText() method
The By.partialLinkText() method
The By.tagName() method
The By.xpath() method
The By.cssSelector() method
Interacting with WebElements
Getting element properties and attributes
The getAttribute() method
The getText() method
The getCssValue() method
The getLocation() method
The getSize() method
The getTagName() method
Performing actions on WebElements
The sendKeys() method
The clear() method
The submit() method
Checking the WebElement state
The isDisplayed() method
The isEnabled() method
The isSelected() method
Summary
Questions
Further information
Chapter 2: Different Available WebDrivers
Firefox Driver
Using GeckoDriver
Using Headless Mode
Understanding the Firefox profile
Adding the extension to Firefox
Storing and retrieving a profile
Dealing with Firefox preferences
Setting preferences
Understanding frozen preferences
Chrome Driver.
Using Headless Mode
Using Mobile Emulation for testing mobile web applications
Adding ChromeExtensions
InternetExplorerDriver
Writing your first test script for the IE browser
Understanding IEDriver capabilities
Edge Driver
Writing your first test script for the Edge browser
Safari Driver
Writing your first test script for the Safari browser
Summary
Questions
Further information
Chapter 3: Using Java 8 Features with Selenium
Introducing Java 8 Stream API
Stream.filter()
Stream.sort()
Stream.map()
Stream.collect()
Stream.min() and Stream.max()
Stream.count()
Using Stream API with Selenium WebDriver
Filtering and counting WebElements
Filtering element attributes
Using the Map function to get the text value from elements
Filtering and performing actions on WebElements
Summary
Questions
Further information
Chapter 4: Exploring the Features of WebDriver
Taking screenshots
Locating target windows and Frames
Switching among windows
Switching between frames
Handling alerts
Exploring Navigate
Waiting for WebElements to load
Implicit wait time
Explicit wait time
Handling cookies
Summary
Questions
Further information
Chapter 5: Exploring Advanced Interactions of WebDriver
Understanding the build and perform actions
Learning mouse based interactions
The moveByOffset action
The click at current location action
The click on a WebElement action
The click and hold at current location action
The click and hold a WebElement action
The release at current location action
The release on another WebElement action
The moveToElement action
The dragAndDropBy action
The dragAndDrop action
The double click at current location action
The double click on WebElement action.
The context click on WebElement action
The context click at current location action
Learning keyboard-based interactions
The keyDown and keyUp actions
The sendKeys method
Summary
Questions
Further information
Chapter 6: Understanding WebDriver Events
Introducing the eventFiringWebDriver and eventListener classes
Creating an instance of EventListener
Implementing WebDriverEventListener
Extending AbstractWebDriverEventListener
Creating a WebDriver instance
Creating EventFiringWebDriver and EventListener instances
Registering EventListener with EventFiringWebDriver
Executing and verifying the events
Registering multiple EventListeners
Exploring different WebDriver event listeners
Listening for WebElement value changes
Listening for the clicked WebElement
Listening for a WebElement search event
Listening for browser back-navigation
Listening for browser forward-navigation
Listening for browser NavigateTo events
Listening for script execution
Listening for an exception
Unregistering EventListener with EventFiringWebDriver
Performing accessibility testing
Capturing page-performance metrics
Summary
Questions
Further information
Chapter 7: Exploring RemoteWebDriver
Introducing RemoteWebDriver
Understanding Selenium Standalone Server
Downloading Selenium Standalone Server
Running the server
Understanding the RemoteWebDriver client
Converting an existing test script to use the RemoteWebDriver server
Using RemoteWebDriver for Firefox
Using RemoteWebDriver for Internet Explorer
Understanding the JSON wire protocol
Summary
Questions
Further information
Chapter 8: Setting up Selenium Grid
Exploring Selenium Grid
Understanding the hub
Understanding the node
Modifying the existing test script to use Selenium Grid.
Requesting for non-registered capabilities
Queuing up the request if the node is busy
Dealing with two nodes with matching capabilities
Configuring Selenium Grid
Specifying node-configuration parameters
Setting supported browsers by a node
Setting node timeouts
Setting the limit on browser instances
Reregistering the node automatically
Setting node health-check times
Unregistering an unavailable node
Setting the browser timeout
Hub-configuration parameters
Waiting for a match of the desired capability
Customized CapabilityMatcher
WaitTimeout for a new session
Different ways to specify the configuration
Using cloud-based grids for cross-browser testing
Summary
Questions
Further information
Chapter 9: The PageObject Pattern
Creating test cases for our WordPress blog
Test case 1
adding a new post to our WordPress blog
Test case 2
deleting a post from our WordPress blog
Test case 3
counting the number of posts on our WordPress blog
What is the PageObject pattern?
Using the @FindBy annotation
Understanding PageFactory
Good practices for the PageObjects design
Think of a web page as a services provider
Always look for implied services
Using PageObjects within a PageObject
The AddNewPost PageObject
The AllPostsPage PageObject
Think of methods in PageObjects as services and not as user actions
Identifying some WebElements on the fly
Keeping the page-specific details off the test script
Understanding loadable components
Working on an end-to-end example of WordPress
Looking at all the PageObjects
The AdminLoginPage PageObject
The AllPostsPage PageObject
The AddNewPostPage PageObject
The EditPostPage PageObject
The DeletePostPage PageObject
Looking at the test cases
Adding a new post
Editing a post.
Deleting a post
Counting posts
Summary
Questions
Further information
Chapter 10: Mobile Testing on iOS and Android using Appium
Different forms of mobile applications
Available software tools
Automating iOS and Android tests using Appium
Automating iOS Application tests
Automating Android application tests
Prerequisites for Appium
Setting up Xcode
Setting up Android SDK
Creating the Android Emulator
Installing Appium
Automating for iOS
Automating for Android
Using Device Cloud to run tests on Real Devices
Summary
Questions
Further information
Chapter 11: Data-Driven Testing with TestNG
Overview of data-driven testing
Parameterizing Tests using suite parameters
Parameterizing Tests with a Data Provider
Reading data from a CSV file
Reading data from an Excel file
Summary
Questions
Further information
Assessments
Other Books You May Enjoy
Index.
Source of Description
Description based on online resource; title from title page (Safari, viewed August 30, 2018).
Added Author
Linked Resources
Record Appears in