Grunt qunit点击事件不起作用

时间:2014-07-28 03:44:21

标签: javascript unit-testing gruntjs phantomjs qunit

我不能为我的生活找出如何在qunit中触发按钮上的点击事件。我使用grunt-contrib-qunit,我相信使用phantomJS来运行测试。我尝试了多种人们所说的与phantomJS相关的解决方案(就像这个:PhantomJS; click an element),但它们似乎都没有用。

在模拟元素上的点击事件后,有没有人能够在命令行中使用grunt-contrib-qunit进行测试?

1 个答案:

答案 0 :(得分:0)

好的,我解决了我的问题。事实证明,PhantomJS实现了触摸事件,我的代码正在检查ontouchend事件并绑定它,如果它在那里。哇我没想到!所以我能够通过创建一个如下所示的函数来解决我的问题:

function fireClickEvent(el) {
    var eventType = "ontouchend" in document.documentElement ? "touchstart" : "click";
    var clickEvent = document.createEvent('MouseEvent');
    clickEvent.initMouseEvent(eventType, true, true, window,
        0, 0, 0, 0, 0, false, false, false, false, 0, null);

    el.dispatchEvent(clickEvent);
}

在我发布问题之前,我会尝试检查一下我的工作。