售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Title Page
Copyright and Credits
Selenium WebDriver 3 Practical Guide Second Edition
Packt Upsell
Why subscribe?
PacktPub.com
Contributors
About the author
About the reviewer
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Installing Java
Installing Eclipse
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
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
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
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
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
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
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
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
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
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
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
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
Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5
Chapter 6
Chapter 7
Chapter 8
Chapter 9
Chapter 10
Chapter 11
Other Books You May Enjoy
Leave a review - let other readers know what you think
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜