如何使用javascript / jQuery对箭头键导航进行单元测试

时间:2012-08-14 08:24:27

标签: javascript jquery unit-testing keyboard-events

我们正在开发多个小部件,并要求我们必须支持键盘导航(辅助功能)。 我们已经添加了关于规范的键盘导航,一切都很好,但我们也想测试它是否可以使用单元测试。

我们尝试过用

进行测试
  • 硒,但硒似乎没有记录箭头键
  • busterJS,使用线程Simulate left and right arrow key event with javascript中给出的解决方案。但是在这里我们得到了不同的例外,表明我们正在做一些非法行为。
  • 使用jQuery trigger()触发事件,结果与之前的尝试相同。

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

欢迎任何评论,我可能也会在这里找到完全错误的方向,所以如果你对如何在javascript中测试键盘导航有一些想法,请随时赐教:)

1 个答案:

答案 0 :(得分:2)

好了一些解决方案,

  1. 古老的说法是“当用户说没有任何改变,因为他在说谎”,结果再一次变得真实。我在"Simulate left and right arrow key event with javascript"线程中重新测试了解决方案,并且正如所描述的那样解决了所做的解决方案(IE10除外)。

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

  2. 我还找到了Selenium的解决方案 即使selenium没有记录箭头键导航,您也可以指定keyDown命令,将元素定位器设置为目标,将转义的keyCode设置为您的值(\ 37 = left,\ 38 = up,\ 39 = right,\ 40 =下来)
    如何在Selenium documentation

  3. 中描述如何指定硒元素定位符

    要使两个解决方案都能正常工作,您需要将要用于测试的元素附加到DOM。