axe-selenium-python icon indicating copy to clipboard operation
axe-selenium-python copied to clipboard

Clarify arguments to `axe.run()`

Open dvarrazzo opened this issue 4 years ago • 1 comments

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?

dvarrazzo avatar Jan 22 '20 16:01 dvarrazzo

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

ajaysuwalka avatar Sep 29 '20 16:09 ajaysuwalka