Jquery 使用Kendo UI Mobile以编程方式触发单击事件

Jquery 使用Kendo UI Mobile以编程方式触发单击事件,jquery,kendo-ui,jasmine,kendo-mobile,Jquery,Kendo Ui,Jasmine,Kendo Mobile,我正在使用KendoUIMobile,我正在尝试编写一个UI测试用例。我用茉莉花做测试。我在我的手机应用程序登录页面中有以下按钮 <a data-role="button" data-rel="modalview" href="#modalview-login" id="modalview-open-button">Login</a> 我遗漏了什么?显然,Kendo UI Mobile正在捕获并处理click()事件。我可以通过以下方式模拟单击事件: $("#modal

我正在使用KendoUIMobile,我正在尝试编写一个UI测试用例。我用茉莉花做测试。我在我的手机应用程序登录页面中有以下按钮

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

我遗漏了什么?

显然,Kendo UI Mobile正在捕获并处理click()事件。我可以通过以下方式模拟单击事件:

$("#modalview-open-button").mousedown().mouseup();  // send "click()"
expect($("#modalview-login").is(":visible")).toBeTruthy();
我还发现,有时.mousedown().mouseup()后面的expect()代码在.mouseup()完成之前触发,因此我将测试代码放入回调中

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

我今天也遇到了同样的情况,并通过使用以下代码行找到了解决方法。这不是一个很好的解决方案,但它可能会帮助陷入同样处境的人

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

可能只是尝试调用DOM节点方法:
$(“#modalview open button”)。获取(0)。单击()与:
document.getElementById('modalview-open-button')相同。单击()
我应该能够在控制台窗口中键入,对吗?如果您谈到浏览器控制台,是的。如果你谈到其他任何控制台,我不知道是的,浏览器控制台。请参阅我关于为什么click()不能在浏览器控制台中工作的回答。我应该注意,这有相当多的异步问题,我至少有一个例子表明.mousedown().mouseup()不能很好地工作。我很想测试一下,但我不再处理这些项目了。如果这比解决方案(hack)获得更多的选票,我将更新接受的答案。
var kendoMobileButton = $("#button-id").data("kendoMobileButton");
kendoMobileButton._events.click[0]();