2014-02-09 95 views
2

我是writing some tests與Jasmine在PhantomJS中運行。一次測試使用構造函數觸發虛假鼠標事件。例如:假PhantomJS中的假jQuery鼠標事件

$('.elem').trigger($.Event('click', { 
    target: $('.elem').find('.a-child')[0] 
})); 

這適用於Chrome,Firefox等,但無法在PhantomJS中觸發。 mouseenter也是如此。有趣的是,如果我做關鍵事件,它在PhantomJS中運行良好,它似乎只是鼠標。

有沒有辦法解決這個問題,或者更好的方法來僞造事件?

回答

2

看來PhantomJS使用觸摸事件而不是點擊來解釋失敗。 Modernizr.touch回報PhantomJS

I ended up真正連接到根據測試的結果,無論是觸摸或點擊:

nav.trigger($.Event(Modernizr.touch ? 'touchstart' : 'click', { 
    target: nav.find('a').get(1) 
})); 

可悲的是這並不mouseentermouseleave事件幫助。我能找到的最近的細節是this old bug report