axe-selenium-python
axe-selenium-python copied to clipboard
Clarify arguments to `axe.run()`
Looking at the code, it seems that axe.run()
takes arguments as strings representing Javascript objects:
https://github.com/mozilla-services/axe-selenium-python/blob/270c8cd5aed76e31d8c9086e397a487126425026/axe_selenium_python/axe.py#L36-L52
This is a surprising interface for a Python object, and I can't find it documented anywhere, or exercised in the unit test. What is the correct way of specifying Axe the following options?
{"runOnly": {"type": "tag", "value": ["wcaga2a"]}}
Maybe you need:
- an example to show the correct way to call the function
- if the objects are not strings then
json.dumps()
them
or maybe I'm reading all wrong?
I was also searching for the same and at last found out that you can set them the same way, how they are set in the js like
axe = Axe(driver)
# Inject axe-core javascript into page.
axe.inject()
# Run axe accessibility checks.
results = axe.run(options={
"runOnly": {
"type": 'rule',
"values": ['area-alt', 'aria-allowed-attr','color-contrast', 'valid-lang']
}
})
# Assert no violations are found
assert len(results["violations"]) == 0, axe.report(results["violations"])
This object can be anything like the examples mentioned #here