Skip to main content

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

uv add selenium-screenshot-compare
# or 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

uv add selenium-screenshot-compare[robot]
# or: 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

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.2.0.tar.gz (83.4 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.2.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for selenium_screenshot_compare-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2916fa1283d3dd7da70131736b54e19d883eb92e4d363722dc9b15a0f1a66933
MD5 ffb407bc6b7e4a1a3fce2043811a1838
BLAKE2b-256 36825b7a4ca08660e5d7dd359a036ab9dacb0f0e5cfe11e55caefd1c5d847ec0

See more details on using hashes here.

Provenance

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

Publisher: release.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.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for selenium_screenshot_compare-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dcda6de059ee6fa774fb1dc8a95a9639d7e3f8a45f8af3234eb16ff68e533673
MD5 9e6ba7a46f6f0e13aafc93cddb22d09d
BLAKE2b-256 123fe67901dbdb8bd60f59295ca46a8860a85c030dedc2c62abca64cdacd8138

See more details on using hashes here.

Provenance

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

Publisher: release.yml on EAnathos/selenium-screenshot-compare

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

Release history Release notifications | RSS feed

0.3.0

2 files

0.2.1

2 files

This release

0.2.0 This release

2 files

0.1.2

2 files

0.1.0

2 files

Supported by

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