Selenium WebDriver 3 Practical Guide: End-to-end automation testing for web and mobile browsers with Selenium WebDriver, 2nd Edition
Book information
Description
Real-world examples of cross-browser, mobile, and data-driven testing with all the latest features of Selenium WebDriver 3 Key FeaturesUnlock the full potential of Selenium to test your web applicationsUse Selenium Grid for faster, parallel running, and cross-browser testingTest iOS and Android Apps with AppiumBook 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 learnUnderstand what Selenium 3 is and how is has been improved than its predecessorUse different mobile and desktop browser platforms with Selenium 3Perform advanced actions, such as drag-and-drop and action builders on web pageLearn to use Java 8 API and Selenium 3 togetherExplore remote WebDriver and discover how to use itPerform cross browser and distributed testing with Selenium GridUse Actions API for performing various keyboard and mouse actionsWho 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. Table of ContentsIntroducing WebDriver and WebElementsWorking with Browser DriversUsing Java 8 features along with SeleniumExploring the Features of WebDriver Exploring Advanced Interactions of WebDriver Understanding WebDriver Events Exploring RemoteWebDriver Setting up Selenium GridThe PageObject Pattern Mobile Testing on iOS and Android using AppiumData Driven Testing with TestNG Assessments 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
Similar books
Learning Selenium Testing Tools with Python
2014 · PDF
Selenium WebDriver 3 Practical Guide, Second Edition
2018 · EPUB
Learn Selenium: Build data-driven test frameworks for mobile and web applications with Selenium Web Driver 3
2019 · AZW3
Learning selenium testing tools with python
2014 · EPUB
Selenium WebDriver Practical Guide
2014 · PDF
Selenium Testing Tools Cookbook
2012 · PDF
Selenium Testing Tools Cookbook, 2nd Edition: Over 90 recipes to help you build and run automated tests for your web applications with Selenium WebDriver
2015 · PDF
Learning Selenium Testing Tools with Python: A practical guide on automated web testing with Selenium using Python
2014 · PDF