Skip to main content

Compare a website's rendering between two Firefox versions driven in parallel via Selenium (Python + Robot Framework library).

Project description

selenium-screenshot-compare

Compare a website's rendering between two Firefox versions through a click-based navigation scenario. At each step, both full-page renders are captured and their pixel difference is measured.

Usable from plain Python or as a Robot Framework library.

Installation

pip install selenium-screenshot-compare

You need two Firefox binaries (your system Firefox + a second version). See docs/firefox-setup.md for how to get one.

Quick start — Python

from selenium_screenshot_compare import DualSession, compare_images

session = DualSession("/usr/bin/firefox", "./firefoxes/firefox-128esr/firefox")
session.open("https://example.com")
session.click("css=a.nav-link")
session.capture_both("a.png", "b.png")
result = compare_images("a.png", "b.png", "diff.png")
print(f"{result.percent:.2f} % difference")
session.close()

Quick start — Robot Framework

pip install selenium-screenshot-compare[robot]
robot --outputdir output/robot tests/interactive_navigation.robot
Open Versions    ${SITE}    ${FIREFOX_A}    ${FIREFOX_B}
Capture And Compare    home    ${CAPTURES_DIR}
Click Element    css=a[href="/photographie"]
Capture And Compare    after-click    ${CAPTURES_DIR}
[Teardown]    Close Versions

Keywords

Keyword Role
Open Versions open the URL in both Firefox instances
Go To navigate to a URL
Click Element click (css=, id=, xpath=…)
Input Text type text
Go Back previous page
Capture And Compare capture + diff + result.json
Load Storage State inject cookies + localStorage (authenticated session)
Close Versions close both browsers

Output

Each Capture And Compare produces a folder with version_a.png, version_b.png, diff.png, and a result.json:

{
  "difference_percent": 0.0,
  "first_diff_y": null,
  "firefox_a": "152.0.1",
  "firefox_b": "128.0"
}

Documentation

License

MIT

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

selenium_screenshot_compare-0.1.2.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

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

selenium_screenshot_compare-0.1.2-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file selenium_screenshot_compare-0.1.2.tar.gz.

File metadata

File hashes

Hashes for selenium_screenshot_compare-0.1.2.tar.gz
Algorithm Hash digest
SHA256 5590c3bf1121f70ec5f5edc4f7b0beb49e1871d198e884c2f5796e99bd946a25
MD5 c5bc8a43711ba7254cc1122c1e1d4b78
BLAKE2b-256 7b937adec7b3d27414895f653c5defe6a0b6eb72dcb5260331e2098ae8371555

See more details on using hashes here.

Provenance

The following attestation bundles were made for selenium_screenshot_compare-0.1.2.tar.gz:

Publisher: auto-tag.yml on EAnathos/selenium-screenshot-compare

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file selenium_screenshot_compare-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for selenium_screenshot_compare-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 888e8658974ffd36c12612ae471d55bbd6097696d7cef5e4f1f56955c6492533
MD5 facf5f5bc87d552bbe3a7360342ebe0e
BLAKE2b-256 3cef13508e9e7932ee669fc2b0e9bc4c4394f2a8917531afceab21552636a23c

See more details on using hashes here.

Provenance

The following attestation bundles were made for selenium_screenshot_compare-0.1.2-py3-none-any.whl:

Publisher: auto-tag.yml on EAnathos/selenium-screenshot-compare

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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