2014-01-06 63 views
2

我正在使用Kendo UI Mobile,並試圖編寫UI測試用例。我正在使用Jasmine進行測試。我在我的移動應用登錄頁面中有以下按鈕。使用Kendo UI手動編程發起點擊事件Mobile

<a data-role="button" data-rel="modalview" href="#modalview-login" id="modalview-open-button">Login</a> 

我想用我的測試來觸發該按鈕。我正在使用下面的代碼試圖觸發該按鈕,但沒有發生(我可以告訴)。

$("#modalview-open-button").click(); 

我失蹤了什麼?

+0

也許只是嘗試調用DOM節點的方法:'$( 「#modalview開按鈕」)得到(0)。點擊();'比相同:'的document.getElementById( 'modalview-open-button')。click()' –

+0

我應該可以輸入到控制檯窗口中,對嗎? – zkent

+1

如果你談論瀏覽器控制檯,雅。如果你談論任何其他控制檯,我不知道 –

回答

2

顯然,Kendo UI Mobile正在捕獲並處理click()事件。我能夠使用模擬點擊事件:

$("#modalview-open-button").mousedown().mouseup(); // send "click()" 
expect($("#modalview-login").is(":visible")).toBeTruthy(); 

我也發現,有時期望.mousedown()以下()代碼的mouseup()的.mouseup之前發射()完成的,所以我把我的測試代碼放在回調中。

$("#modalview-open-button").mousedown().mouseup(function() { // send "click()" 
    expect($("#modalview-login").is(":visible")).toBeTruthy(); 
}); 
+0

我應該注意到,這有其公平的份額的異步問題,我至少有一個情況下.mousedown()。mouseup()不工作如此熱。 – zkent

0

我今天有同樣的情況,並通過使用下面的代碼行找到解決方法。這不是一個好的解決方案,但也許它可以幫助陷入相同情況的人。

var kendoMobileButton = $("#button-id").data("kendoMobileButton"); 
kendoMobileButton._events.click[0](); 
+0

我很想測試這個,但我不再在這些項目上工作。如果這比得到更多投票(解決方法),我會更新接受的答案。 – zkent