Python library to integrate axe and selenium for web accessibility testing.
axe-selenium-python integrates aXe and selenium to enable automated web accessibility testing.
This version of axe-selenium-python is using axe-core@3.1.1.
.. image:: https://img.shields.io/badge/license-MPL%202.0-blue.svg :target: https://github.com/mozilla-services/axe-selenium-python/blob/master/LICENSE.txt :alt: License .. image:: https://img.shields.io/pypi/v/axe-selenium-python.svg :target: https://pypi.org/project/axe-selenium-python/ :alt: PyPI .. image:: https://img.shields.io/travis/mozilla-services/axe-selenium-python.svg :target: https://travis-ci.org/mozilla-services/axe-selenium-python :alt: Travis .. image:: https://img.shields.io/github/issues-raw/mozilla-services/axe-selenium-python.svg :target: https://github.com/mozilla-services/axe-selenium-python/issues :alt: Issues .. image:: https://api.dependabot.com/badges/status?host=github&repo=mozilla-services/axe-selenium-python :target: https://dependabot.com :alt: Dependabot .. image:: https://coveralls.io/repos/github/mozilla-services/axe-selenium-python/badge.svg?branch=master :target: https://coveralls.io/github/mozilla-services/axe-selenium-python?branch=master :alt: Coveralls
You will need the following prerequisites in order to use axe-selenium-python:
selenium >= 3.0.0
Python 2.7 or 3.6
The appropriate driver for the browser you intend to use, downloaded and added to your path, e.g. geckodriver for Firefox:
geckodriver <https://github.com/mozilla/geckodriver/releases>
_ downloaded and added to your PATH <https://stackoverflow.com/questions/40208051/selenium-using-python-geckodriver-executable-needs-to-be-in-path#answer-40208762>
_To install axe-selenium-python:
.. code-block:: bash
$ pip install axe-selenium-python
.. code-block:: python
from selenium import webdriver from axe_selenium_python import Axe
def test_google(): driver = webdriver.Firefox() driver.get("http://www.google.com") axe = Axe(driver) # Inject axe-core javascript into page. axe.inject() # Run axe accessibility checks. results = axe.run() # Write results to file axe.write_results(results, 'a11y.json') driver.close() # Assert no violations are found assert len(results["violations"]) == 0, axe.report(results["violations"])
The method axe.run()
accepts two parameters: context
and options
.
For more information on context
and options
, view the aXe documentation here <https://github.com/dequelabs/axe-core/blob/master/doc/API.md#parameters-axerun>
_.
Fork the repository and submit PRs with bug fixes and enhancements; contributions are very welcome.
Node dependencies must be installed by running npm install
inside the axe-selenium-python directory.
You can run the tests using
tox <https://tox.readthedocs.io/en/latest/>
_:
.. code-block:: bash
$ tox
Issue Tracker <http://github.com/mozilla-services/axe-selenium-python/issues>
_Code <http://github.com/mozilla-services/axe-selenium-python/>
_pytest-axe <http://github.com/mozilla-services/pytest-axe/>
_CHANGELOG ^^^^^^^^^^^^^^
version 2.1.5
Breaking changes:
execute
has been renamed to run
to mirror the method in the axe-core API.version 2.1.0
version 2.0.0
All functionalities that are not part of axe-core have been moved into a separate package, pytest-axe
. This includes:
run_axe
helper methodget_rules
Axe class methodrun
Axe class methodimpact_included
Axe class methodanalyze
Axe class method.The purpose of this change is to separate implementations that are specific to the Mozilla Firefox Test Engineering team, and leave the base axe-selenium-python
package for a more broad use case. This package was modeled off of Deque's Java package, axe-selenium-java, and will now more closely mirror it.
All functionalities can still be utilized when using axe-selenium-python
in conjunction with pytest-axe
.
version 1.2.3
ACCESSIBILITY_REPORTING=true
. The files will be written to results/
directory, which must be created if it does not already exist.ACCESSIBILITY_DISABLED=true
.version 1.2.1
axe-core@2.6.1
version 1.0.0
version 0.0.3
version 0.0.28
version 0.0.21