The Selenium WebDriver Recipes book is a quick problem-solving guide to automated testing web applications with Selenium WebDriver. It contains hundreds of solutions to real-world problems, with clear explanations and ready-to-run test scripts you can use in your own projects.
Table of Content
- Introduction
- Selenium
- Selenium language bindings
- Set up Development Environment
- Cross browser testing
- JUnit
- Run recipe scripts
- 2. Locating web elements
- Start browser
- Find element by ID
- Find element by Name
- Find element by Link Text
- Find element by Partial Link Text
- Find element by XPath
- Find element by Tag Name
- Find element by Class
- Find element by CSS Selector
- Chain findElement to find child elements
- Find multiple elements
- 3. Hyperlink
- Click a link by text
- Click a link by ID
- Click a link by partial text
- Click a link by XPath
- Click Nth link with exact same label
- Click Nth link by CSS Selector
- Verify a link present or not?
- Getting link data attributes
- Test links open a new browser window
- 4. Button
- Click a button by label
- Click a form button by label
- Submit a form
- Click a button by ID
- Click a button by name
- Click a image button
- Click a button via JavaScript
- Assert a button present
- Assert a button enabled or disabled?
- 5. TextField and TextArea
- Enter text into a text field by name
- Enter text into a text field by ID
- Enter text into a password field
- Clear a text field
- Enter text into a multi-line text area
- Assert value
- Focus on a control
- Set a value to a read-only or disabled text field
- Set and assert the value of a hidden field
- 6. Radio button
- Select a radio button
- Clear radio option selection
- Assert a radio option is selected
- Iterate radio buttons in a radio group
- Click Nth radio button in a group
- Click radio button by the following label
- Customized Radio buttons – iCheck
- 7. CheckBox
- Check by name
- Check by id
- Uncheck a checkbox
- Assert a checkbox is checked (or not)
- Customized Checkboxes – iCheck
- 8. Select List
- Select an option by text
- Select an option by value
- Select an option by iterating all options
- Select multiple options
- Clear one selection
- Clear selection
- Assert selected option
- Assert the value of a select list
- Assert multiple selections
- 9. Navigation and Browser
- Go to a URL
- Visit pages within a site
- Perform actions from right click context menu such as ‘Back’, ‘Forward’ or ‘Refresh’
- Open browser in certain size
- Maximize browser window
- Move browser window
- Minimize browser window
- Scroll focus to control
- Switch between browser windows or tabs
- Open new and close browser Tabs
- Remember current web page URL, then come back to it later
- 10. Assertion
- Assert page title
- Assert Page Text
- Assert Page Source
- Assert Label Text
- Assert Span text
- Assert Div text or HTML
- Assert Table text
- Assert text in a table cell
- Assert text in a table row
- Assert image present
- Assert element location and width
- Assert element CSS style
- 11. Frames
- Testing Frames
- Testing iframe
- Test multiple iframes
- 12. Testing AJAX
- Wait within a time frame
- Explicit Waits until Time out
- Implicit Waits until Time out
- Wait AJAX Call to complete using JQuery
- 13. File Upload and Popup dialogs
- File upload
- JavaScript pop ups
- Timeout on a test
- Modal style dialogs
- Popup Handler Approach
- Handle JavaScript dialog with Popup Handler
- Basic or Proxy Authentication Dialog
- Internet Explorer modal dialog
- 14. Debugging Test Scripts
- Print text for debugging
- Write page source or element HTML into a file
- Take screenshot
- Leave browser open after test finishes
- Debug test execution using Debugger
- 15. Test Data
- Get date dynamically
- Get a random boolean value
- Generate a number within a range
- Get a random character
- Get a random string at fixed length
- Get a random string in a collection
- Generate a test file at fixed sizes
- Retrieve data from Database
- 16. Browser Profile and Capabilities
- Get browser type and version
- Set HTTP Proxy for Browser
- Verify file download in Chrome
- Verify file download in Firefox
- Bypass basic authentication by embedding username and password in URL
- Bypass basic authentication with Firefox AutoAuth plugin
- Manage Cookies
- Headless browser testing with PhantomJS
- Test responsive websites
- Set page load timeout
- 17. Advanced User Interactions
- Double click a control
- Move mouse to a control – Mouse Over
- Click and hold – select multiple items
- Context Click – right click a control
- Drag and drop
- Drag slider
- Send key sequences – Select All and Delete
- Click a specific part of an image
- 18. HTML 5 and Dynamic Web Sites
- HTML5 Email type field
- HTML5 Time Field
- Invoke ‘onclick’ JavaScript event
- Invoke JavaScript events such as ‘onchange’
- Scroll to the bottom of a page
- Select2 – Single Select
- Select2 – Multiple Select
- AngularJS web pages
- Ember JS web pages
- “Share Location” with Firefox
- Faking Geolocation with JavaScript
- 19. WYSIWYG HTML editors
- TinyMCE
- CKEditor
- SummerNote
- CodeMirror
- 20. Leverage Programming
- Raise exceptions to fail test
- Ignorable test statement error
- Read external file
- Data-Driven Tests with Excel
- Data-Driven Tests with CSV
- Identify element IDs with dynamically generated long prefixes
- Sending special keys such as Enter to an element or browser
- Use of Unicode in test scripts
- Extract a group of dynamic data : verify search results in order
- Verify uniqueness of a set of data
- Extract dynamic visible data rows from a results table
- Extract dynamic text following a pattern using Regex
- 21. Optimization
- Assert text in page_source is faster than the text
- Getting text from more specific element is faster
- Avoid programming if-else block code if possible
- Use variable to cache not-changed data
- Enter large text into a text box
- Use Environment Variables to change test behaviours dynamically
- Testing web site in two languages
- Multi-language testing with lookups
- 22. Gotchas
- Test starts browser but no execution with blank screen
- Failed to assert copied text in browser
- The same test works for Chrome, but not for IE
- “unexpected tag name ‘input’”
- Element is not clickable or not visible
- 23. Selenium Remote Control Server
- Selenium Server Installation
- Execute tests in specified browser on another machine
- Selenium Grid
DOWNLOAD HERE