使用Jasmine 2.x和AngularJS等待PhantomJS 2中的click事件

时间:2016-02-19 17:47:18

标签: angularjs jasmine phantomjs

我正在尝试测试一个使用click事件并且无处可去的Angular指令。我可以让事件发射得很好,但PhantomJS2只需要永远使事件发生,我无法找到一种方法让Jasmine在运行断言之前等待它发生。我搜索了很多,最常见的回答是:How to wait for a click() event to load in phantomjs before continuing?。可悲的是,那家伙也没想出来,我不是在等一个页面加载,只是为了点击事件最终注册。我希望别人有,只是没有看到这个问题,或者不想就这么老的问题开始回复。作为参考,如果没有选择,则有问题的指令选择输入标记内的文本。我已经尝试了所有可以想到的超时排列,但没有任何效果。最后一次尝试涉及使用Jasmine的done()函数,但仍然没有运气。

//the default value in the input is "unchanged"
it('should not select anything if there is already a selection in the element', function(done) {
    element[0].setSelectionRange(2, element[0].value.length);
    element.triggerHandler('click');
    scope.$digest();
    expect(theWindow.getSelection().toString()).toEqual('changed');
    done();
});

将考虑所有合理的建议。如果有人链接到我在Google-foo上找不到的解决方案,我会欣喜若狂。

注意:我从这里开始使用setTimeout:https://newspaint.wordpress.com/2013/03/19/how-to-click-on-a-div-or-span-using-phantomjs/

0 个答案:

没有答案