Selenium WebDriver 3 practical guide end-to-end automation testing for web and mobile browsers with selenium WebDriver

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 A...

Full description

Bibliographic Details
Other Authors: Gundecha, Unmesh, author (author), Avasarala, Satya, author
Format: eBook
Language:Inglés
Published: Birmingham ; Mumbai : Packt 2018.
Edition:Second edition
Subjects:
See on Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630753606719
Table of Contents:
  • 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.