我们正在开发多个小部件,并要求我们必须支持键盘导航(辅助功能)。 我们已经添加了关于规范的键盘导航,一切都很好,但我们也想测试它是否可以使用单元测试。
我们尝试过用
进行测试我可以理解,使用密钥代码触发键盘事件可能被浏览器制造商视为危险,因此被禁止(如果这是核心问题)。如果确实如此,是否有一些选项可以在IE10,Chrome或Firefox中进行设置以启用事件?
欢迎任何评论,我可能也会在这里找到完全错误的方向,所以如果你对如何在javascript中测试键盘导航有一些想法,请随时赐教:)
答案 0 :(得分:2)
好了一些解决方案,
古老的说法是“当用户说没有任何改变,因为他在说谎”,结果再一次变得真实。我在"Simulate left and right arrow key event with javascript"线程中重新测试了解决方案,并且正如所描述的那样解决了所做的解决方案(IE10除外)。
为了使它在IE10中工作,我需要在解决方案中切换if测试的顺序,因为IE10显然只支持document.createEvent(),即使document.createEventObject的计算结果为true。 / p>
我还找到了Selenium的解决方案
即使selenium没有记录箭头键导航,您也可以指定keyDown命令,将元素定位器设置为目标,将转义的keyCode设置为您的值(\ 37 = left,\ 38 = up,\ 39 = right,\ 40 =下来)
如何在Selenium documentation
要使两个解决方案都能正常工作,您需要将要用于测试的元素附加到DOM。