Selenium WebDriver Recipes in Python: The problem solving guide to Selenium WebDriver in Python [5, 1 ed.] 1514256576, 9781514256572

A quick problem-solving guide to automated testing web applications with Selenium WebDriver in Python. It contains hundr

239 19 4MB

English Pages 179 Year 2015

Report DMCA / Copyright

DOWNLOAD EPUB FILE

Table of contents :
Table of Contents
Preface
Who should read this book
How to read this book
Recipe test scripts
Send me feedback
Introduction
Selenium language bindings
Install Selenium Python
Cross browser testing
unittest - Python Unit Testing Framework
Run recipe scripts
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 Name
Find element by CSS Selector
Chain find_element to find child elements
Find multiple elements
Hyperlink
Start browser
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
Verify a link present or not?
Getting link data attributes
Test links open a new browser window
Button
Click a button by text
Click a form button by text
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?
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
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
CheckBox
Select by name
Uncheck a checkbox
Assert a checkbox is checked (or not)
Customized Checkboxes - iCheck
Select List
Select an option by text
Select an option by value
Select an option by index
Select an option by iterating all options
Select multiple options
Clear one selection
Clear all selections
Assert label or value in a select list
Assert selected option label
Assert the value of a select list
Assert multiple selections
Navigation and Browser
Go to a URL
Visit pages within a site
Perform actions from right mouse 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
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
Assert JavaScript errors on a web page
Frames
Testing Frames
Testing IFrame
Test multiple iframes
Testing AJAX
Wait within a time frame
Explicit Waits until Time out
Implicit Waits until Time out
Create your own polling check function
Wait AJAX Call to complete using JQuery
File Upload and Popup dialogs
File upload
JavaScript pop ups
Modal style dialogs
Bypass basic authentication by embedding username and password in URL
Internet Explorer modal dialog
Popup Handler Approach
Handle JavaScript dialog with Popup Handler
Basic or Proxy Authentication Dialog
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
Attach test executions to an existing browser
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 random person names, emails, addresses with Faker
Generate a test file at fixed sizes
Retrieve data from Database
Browser Profile and Capabilities
Get browser type and version
Set HTTP Proxy for Browser
Verify file download in Chrome
Test downloading PDF in Firefox
Bypass basic authentication with Firefox AutoAuth plugin
Manage Cookies
Headless browser testing with PhantomJS
Headless Chrome
Headless Firefox
Test responsive websites
Set page load timeout
Device emulation on Chrome
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
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
Save a canvas to PNG image
Verify dynamic charts
WYSIWYG HTML editors
TinyMCE
CKEditor
SummerNote
CodeMirror
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
Quick extract pattern text in comments with Regex
Optimization
Assert page_source is faster than page text
Getting text from specific element is faster
Avoid programming if-else block if possible
Use variable to cache not-changed data
Enter large text into a text box
Use Environment Variables to change test behaviours dynamically
Test web site in two languages
Multi-language testing with lookups
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 IE
``unexpected tag name `input'''
Element is not clickable or not visible
Material Design Web App
Select List (dropdown)
Checkbox
Drag range (noUiSlider)
Verify Toast message
Modal
Selenium Remote Control Server
Selenium Server Installation
Execute tests in specified browser on another machine
Selenium Grid
Appendix - Continuous Testing
Verify server machine can run Selenium Python
Install BuildWise Server
Create Build Project in BuildWise
Trigger test execution manually
Feedback while test execution in progress
Build finished
Notification
Review
Afterword
Resources
Books
Web Sites
Tools

Selenium WebDriver Recipes in Python: The problem solving guide to Selenium WebDriver in Python [5, 1 ed.]
 1514256576, 9781514256572

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
Recommend Papers