marionette-harness
Marionette test automation harness
Decision gist · record as of 2026-08-14
No. The package is abandoned (last release October 2019, no updates in 2500+ days) and relies on 15 Mozilla-ecosystem dependencies that are likely also unmaintained. Modern Firefox automation should use Selenium, Playwright, or Puppeteer instead. Install only if maintaining an existing legacy test suite with no alternative path.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a local Firefox binary and the Marionette protocol to be enabled; depends on Mozilla's ecosystem of moz* packages which may have compatibility issues with modern Firefox versions.
- Low install friction with a pure-Python wheel, but the package is abandoned as of 2019 with no updates in over 2500 days.
- Relies on 15 Mozilla-ecosystem dependencies, most of which may also be unmaintained.
License · maintenance · safety
copyleft license (copyleft) — Licensed under Mozilla Public License 2.0 (MPL 2.0), a copyleft license requiring derivative works to disclose source and maintain the same license. Review your project's licensing compatibility before use.
last release 2019-10-10 (2500 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 118,361 downloads/mo, #12,122 on PyPI
Alternatives
Verify before relying
pip install marionette-harness
marionette --binary /path/to/firefox test_file.py- Whether this package works with current Firefox versions, given its 2019 abandonment date.
- Current compatibility of the 15 moz* dependencies with modern Python and OS versions.
- Whether the unittest-based test classes remain functional with modern Python test frameworks.
What it is and what it does
Marionette-harness is a test automation framework for Gecko-based browsers, primarily Firefox. It provides a Python test runner and unittest-based testcase classes that let you write automated tests controlling the browser's UI, chrome, content, and DOM. The package wraps the Marionette protocol, which allows remote control of Firefox for both user-action replication and property inspection.
The tool is invoked from the command line with a manifest file, test file, or test folder, and runs tests against a specified Firefox binary. It is part of Mozilla's QA infrastructure and was designed for testing Gecko applications at scale. However, the package has been abandoned since October 2019 with no updates for over 2500 days, making it a legacy tool that may not work reliably with modern Firefox or Python versions.
Use it for
- Automated testing of Firefox UI and browser chrome behavior in CI/CD pipelines.
- Regression testing of Gecko-based applications by simulating user interactions and verifying DOM state.
- Integration testing of web content within Firefox, including JavaScript execution and property inspection.
- Legacy test suite maintenance for projects that already depend on Marionette test infrastructure.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
No.
The package is abandoned (last release October 2019, no updates in 2500+ days) and relies on 15 Mozilla-ecosystem dependencies that are likely also unmaintained. Modern Firefox automation should use Selenium, Playwright, or Puppeteer instead. Install only if maintaining an existing legacy test suite with no alternative path.
Install
marionette-harness on PyPI
Before you install
Low install friction with a pure-Python wheel, but the package is abandoned as of 2019 with no updates in over 2500 days. Relies on 15 Mozilla-ecosystem dependencies, most of which may also be unmaintained.
Requires a local Firefox binary and the Marionette protocol to be enabled; depends on Mozilla's ecosystem of moz* packages which may have compatibility issues with modern Firefox versions.
License in practice
Licensed under Mozilla Public License 2.0 (MPL 2.0), a copyleft license requiring derivative works to disclose source and maintain the same license. Review your project's licensing compatibility before use.
Quickstart
pip install marionette-harness
marionette --binary /path/to/firefox test_file.py
Verify before relying
- Whether this package works with current Firefox versions, given its 2019 abandonment date.
- Current compatibility of the 15 moz* dependencies with modern Python and OS versions.
- Whether the unittest-based test classes remain functional with modern Python test frameworks.
Package facts
| License | copyleft license copyleft |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 15 packagesbrowsermob-proxymanifestparsermarionette-drivermozcrashmozdevicemozinfomozlogmoznetworkmozprocessmozprofilemozrunnermoztestmozversionsixwptserve |
| Maintenance | Abandoned 2,500 days since the last release |
| First released | |
| Downloads | 118,361 / month, #12,122 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)Operating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: PythonProgramming Language :: Python :: 2.7Topic :: Software Development :: Quality AssuranceTopic :: Software Development :: TestingTopic :: Utilities |
Evidence: marionette_harness-5.0.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “gecko browser test runner”
- marionette-harnessMarionette-harness is a test runner for automating Gecko-based…
- testmuai-playwright-bindingsRuns exported browser automation tests locally or on the LambdaTest…
- sbvirtualdisplayProvides a virtual display wrapper for running browser automation…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also marionette-driver · mozrunner · geckodriver-autoinstaller · pytest-selenium · wptserve · selenium · geckordp · browser-harness · pytest-playwright · robotframework-browser