Skip to main content

Python client for visual testing with Percy

Project description

percy-selenium-python

Test

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])

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 instance
  • name (required) - The screenshot name; must be unique to each screenshot
  • options (optional) - There are various options supported by percy_screenshot to server further functionality.
    • freeze_animation - Boolean value by default it falls back to false, you can pass true 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 xpath
    • ignore_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.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

percy-selenium-2.0.1b0.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

percy_selenium-2.0.1b0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file percy-selenium-2.0.1b0.tar.gz.

File metadata

  • Download URL: percy-selenium-2.0.1b0.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for percy-selenium-2.0.1b0.tar.gz
Algorithm Hash digest
SHA256 58d625c821636f09e14e40c15d5a2dc8c7e3ec22c882be68390641d7d1262bc2
MD5 568cd5c729f507b84e35c0b8974b925e
BLAKE2b-256 3d5dbf4139b6d3c94db63a5885accef9a65c5c11ea5a1d7decfec344e811516c

See more details on using hashes here.

File details

Details for the file percy_selenium-2.0.1b0-py3-none-any.whl.

File metadata

File hashes

Hashes for percy_selenium-2.0.1b0-py3-none-any.whl
Algorithm Hash digest
SHA256 6d768802c9b9c25e20526c0f450454488bfe195d2f302786729b9333f920dcaa
MD5 999e925ad4ca3a5946f27ad9d20854b7
BLAKE2b-256 dfae89a15b47b8cb8ab8757e3e6f527f346f77a46887049cba0752d2c06dbba8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page