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...
Other Authors: | , |
---|---|
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.