因此,我试图找出将Axe-core与Selenium一起使用的可访问性测试。轴芯看起来很有前途,但我被困在一个地方。
我想使用wcag2a,wcag2aa等特定标签运行测试。通过查看他们的api文档页面-https://www.deque.com/axe/axe-for-web/documentation/api-documentation/,很明显,我们必须传递类似
axe.run(
{
runOnly: {
type: 'tag',
values: ['wcag2a', 'wcag2aa']
}
},
(err, results) => {
// ...
}
);
但是问题是我正在用Java编写测试,如何将其传递给代码。我查看了他们的Java示例项目https://github.com/dequelabs/axe-selenium-java的代码,但那里没有提及有关如何传递这些参数的任何内容。
我在它周围做了很多rnd并尝试了如下所示的代码,但出现错误
org.openqa.selenium.JavascriptException: javascript error: axe.run arguments are invalid
JSONObject responseJSON = new AXE.Builder (driver, scriptUrl)
.options("axe.run({ runOnly: ['wcag2a', 'wcag2aa'] },(err, results)=>{});").
analyze();
我也尝试了How to configure rules for wcag2aa in axe-core for selenium java中提到的解决方案,但是尽管该解决方案不会引发任何错误,但是会显示列表中不存在的标签的结果。
任何帮助表示赞赏。谢谢。
最佳答案
因此,我从门户网站https://gitter.im/dequelabs/axe-core#获得了答案。在这里发布给其他人。
JSONObject responseJSON1 = new AXE.Builder(driver, scriptUrl).options("{runOnly:
['wcag2a', 'wcag2aa']}").analyze();