Package: percy-selenium
percy-selenium-pythonPercyvisual testing for Python Selenium.Installationnpm install@percy/cli:$ npm install --save-dev @percy/clipip install Percy selenium package:$ pip install percy-seleniumUsageThis is an example test using thepercy_snapshotfunction.frompercyimportpercy_snapshotbrowser=webdriver.Firefox()browser.get('http://example.com')​# take a snapshotpercy_snapshot(browser,'Python example')Running the test above normally will result in the following log:[percy] Percy is not running, disabling snapshotsWhen running withpercy exec, and your project'sPERCY_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!Configurationpercy_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 optionsMigrating ConfigIf you have a previous Percy configuration file, migrate it to the newest version with theconfig:migratecommand:$ percy config:migratePercy on AutomateUsageThis is an example test using thepercy_screenshotfunction.percy_screenshot(driver, name, options)[ needs @percy/cli 1.27.0-beta.0+ ];frompercyimportpercy_screenshotdriver=webdriver.Remote("https://hub-cloud.browserstack.com/wd/hub",caps)# using automate sessiondriver.get('http://example.com')​# take a snapshotpercy_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.sync- Boolean value by default it falls back tofalse, Gives the processed result around screenshot [From CLI v1.28.0-beta.0+]full_page- Boolean value by default it falls back tofalse, Takes full page screenshot [From CLI v1.27.6+]freeze_animated_image- Boolean value by default it falls back tofalse, you can passtrueand percy will freeze image based animations.freeze_image_by_selectors-List of selectors. Images will be freezed which are passed using selectors. For this to workfreeze_animated_imagemust be set to true.freeze_image_by_xpaths- List of xpaths. Images will be freezed which are passed using xpaths. For this to workfreeze_animated_imagemust be set to true.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- List of xpaths. elements in the DOM can be ignored using xpathignore_region_selectors- List of selectors. elements in the DOM can be ignored using selectors.ignore_region_selenium_elements- List of selenium web-element. elements can be ignored using selenium_elements.custom_ignore_regions-  List of custom objects. elements can be ignored using custom boundaries. Just passing a simple object for it like below.example:{"top": 10, "right": 10, "bottom": 120, "left": 10}In above example it will draw rectangle of ignore region as per given coordinates.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.consider_region_xpaths- List of xpaths. elements in the DOM can be considered for diffing and will be ignored by Intelli Ignore using xpaths.consider_region_selectors- List of selectors. elements in the DOM can be considered for diffing and will be ignored by Intelli Ignore using selectors.consider_region_selenium_elements- List of selenium web-element. elements can be considered for diffing and will be ignored by Intelli Ignore using selenium_elements.custom_consider_regions- List of custom objects. elements can be considered for diffing and will be ignored by Intelli Ignore using custom boundariesexample:{"top": 10, "right": 10, "bottom": 120, "left": 10}In above example it will draw rectangle of consider region will be drawn.Parameters:top(int): Top coordinate of the consider region.bottom(int): Bottom coordinate of the consider region.left(int): Left coordinate of the consider region.right(int): Right coordinate of the consider region.Creating Percy on automate buildNote: Automate Percy Token starts withautokeyword. The command can be triggered usingexeckeyword.$ 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