在警报上单击“确定”或通过jquery / javascript确认对话框?

时间:2011-10-09 19:05:18

标签: javascript jquery testing click automated-tests

我正在考虑在backbone.js和jquery中编写一些UI测试。它们可能不是最好的方法,但它是我正在考虑的事情 - 通过简单的代码自动化测试而无需记录和回放。

使用这种方法让我头脑发热的唯一原因是:在某些“用例流程”(执行中)中,会显示确认/警告对话框。我想点击“确定”并继续流程 - 这是否可以通过简单的JavaScript代码实现?怎么样?

注意:我确实知道GUI测试库存在,但我想知道如何使用jQuery / javascript代码,如果可能的话。

2 个答案:

答案 0 :(得分:16)

据我所知,如果您使用标准alert()调用,则无法触发“OK”点击,因为警报调用会阻止正常的JS事件循环。

但是能够用您自己的函数替换window.alertwindow.confirm

window.alert = function() {
    console.log.apply(console, arguments);
};

在加载任何其他内容之前将这些内容放在JS的顶部,然后对alert()confirm()的任何后续调用都会调用这些内容。

答案 1 :(得分:3)

你想要这样的东西:

<script type="text/javascript">
var oldConfirm = confirm;
var oldAlert = alert;

confirm = function() {
    return true;
};
alert = function() {
    return true;
}

var response = confirm("Is this OK?");

if (response) {
    alert("Yay");
}
else {
    alert("Boo");
}

confirm = oldConfirm;
alert = oldAlert;
</script>
相关问题