Python client for visual testing with Percy
Project description
percy-selenium-python
Percy visual testing for Python Selenium.
Installation
npm install @percy/cli
:
$ npm install --save-dev @percy/cli
pip install Percy selenium package:
$ pip install percy-selenium
Usage
This is an example test using the percy_snapshot
function.
from percy import percy_snapshot
browser = webdriver.Firefox()
browser.get('http://example.com')
# take a snapshot
percy_snapshot(browser, 'Python example')
Running the test above normally will result in the following log:
[percy] Percy is not running, disabling snapshots
When running with percy exec
, and your project's
PERCY_TOKEN
, a new Percy build will be created and snapshots will be uploaded to your project.
$ export PERCY_TOKEN=[your-project-token]
$ percy exec -- [python test command]
[percy] Percy has started!
[percy] Created build #1: https://percy.io/[your-project]
[percy] Snapshot taken "Python example"
[percy] Stopping percy...
[percy] Finalized build #1: https://percy.io/[your-project]
[percy] Done!
Configuration
percy_snapshot(driver, name[, **kwargs])
driver
(required) - A selenium-webdriver driver instancename
(required) - The snapshot name; must be unique to each snapshot**kwargs
- See per-snapshot configuration options
Migrating Config
If you have a previous Percy configuration file, migrate it to the newest version with the
config:migrate
command:
$ percy config:migrate
Percy on Automate
Usage
This is an example test using the percy_screenshot
function.
percy_screenshot(driver, name, options)
[ needs @percy/cli 1.27.0-beta.0+ ];
from percy import percy_screenshot
driver = webdriver.Remote("https://hub-cloud.browserstack.com/wd/hub", caps) # using automate session
driver.get('http://example.com')
# take a snapshot
percy_screenshot(driver, name = 'Screenshot 1')
driver
(required) - A Selenium driver instancename
(required) - The screenshot name; must be unique to each screenshotoptions
(optional) - There are various options supported by percy_screenshot to server further functionality.freeze_animation
- Boolean value by default it falls back tofalse
, you can passtrue
and percy will freeze image based animations.percy_css
- Custom CSS to be added to DOM before the screenshot being taken. Note: This gets removed once the screenshot is taken.ignore_region_xpaths
- elements in the DOM can be ignored using xpathignore_region_selectors
- elements in the DOM can be ignored using selectors.ignore_region_selenium_elements
- elements can be ignored using selenium_elements.custom_ignore_regions
- elements can be ignored using custom boundaries- IgnoreRegion:-
-
Description: This class represents a rectangular area on a screen that needs to be ignored for visual diff.
-
Constructor:
init(self, top, bottom, left, right)
-
Parameters:
top
(int): Top coordinate of the ignore region.bottom
(int): Bottom coordinate of the ignore region.left
(int): Left coordinate of the ignore region.right
(int): Right coordinate of the ignore region. -
Raises:ValueError: If top, bottom, left, or right is less than 0 or top is greater than or equal to bottom or left is greater than or equal to right.
-
valid: Ignore region should be within the boundaries of the screen.
-
- IgnoreRegion:-
Creating Percy on automate build
Note: Automate Percy Token starts with auto
keyword. The command can be triggered using exec
keyword.
$ export PERCY_TOKEN=[your-project-token]
$ percy exec -- [python test command]
[percy] Percy has started!
[percy] [Python example] : Starting automate screenshot ...
[percy] Screenshot taken "Python example"
[percy] Stopping percy...
[percy] Finalized build #1: https://percy.io/[your-project]
[percy] Done!
Refer to docs here: Percy on Automate
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for percy_selenium-2.0.1b0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d768802c9b9c25e20526c0f450454488bfe195d2f302786729b9333f920dcaa |
|
MD5 | 999e925ad4ca3a5946f27ad9d20854b7 |
|
BLAKE2b-256 | dfae89a15b47b8cb8ab8757e3e6f527f346f77a46887049cba0752d2c06dbba8 |