0

我们正在开发几个小部件,并且要求我们必须支持键盘导航(可访问性)。我们已经为规范添加了键盘导航,一切都很好,但我们还想使用单元测试来测试它是否有效。

我们尝试过的是对其进行测试

  • selenium,但 selenium 似乎不记录箭头键
  • busterJS,使用线程Simulate left and right arrow key event with javascript中给出的解决方案。但是在这里我们得到不同的异常,表明我们正在做一些非法的事情。
  • 使用 jQuery trigger() 触发事件,结果与上一次尝试相同。

我可以理解,使用键代码触发键盘事件可能被浏览器制造商视为危险,因此被禁止(如果这是这里的核心问题)。如果确实如此,是否可以在 IE10、Chrome 或 Firefox 中设置一些选项来启用触发事件的可能性?

欢迎任何意见,我也可能在这里寻找完全错误的方向,所以如果您对如何在 javascript 中对键盘导航进行单元测试有一些想法,请随时赐教:)

4

1 回答 1

2

好吧,一些解决方案出现了,

  1. “当用户说什么都没有改变时,假设他在撒谎”这句老话再次被证明是真实的。我在“使用 javascript 模拟左右箭头键事件”线程中重新测试了该解决方案,并完全按照那里描述的解决方案进行操作(IE10 除外)。

    为了让它在 IE10 中工作,我需要在解决方案中切换 if 测试的顺序,因为 IE10 显然只支持 document.createEvent(),即使 document.createEventObject 的计算结果为 true。

  2. I also found a solution for Selenium.
    Even though selenium does not record the arrow key navigation, you can specify a keyDown command, set an element locator as your target and the escaped keyCode as your value (\37 = left, \38 = up, \39 = right, \40 = down)
    How to specify selenium element locators is described in the Selenium documentation

For both solutions to work, you need to attach the elements you want to use for your test to the DOM.

于 2012-08-15T12:05:37.210 回答