Нажав "ОК" в окне оповещения или подтверждения через jquery/javascript?

Я подумывал написать некоторые тесты пользовательского интерфейса в backbone.js и jquery. Возможно, это не лучший способ сделать это, но это то, о чем я думал, - автоматизировать тесты без записи и воспроизведения - через простой код.

Единственное, что заставило меня поцарапать мою голову, используя этот подход, таково: в некоторых "потоках использования" (выполнения) диалоговые окна подтверждения/предупреждения появятся. Я бы хотел нажать "ОК" и продолжить поток - это даже выполнимо с помощью простого кода javascript? Как?

Примечание. Я знаю, что существуют библиотеки тестирования графического интерфейса, но я хочу знать, как это сделать, используя только код jQuery/javascript, если это вообще возможно.

Ответ 1

Насколько я знаю, если вы используете стандартный вызов alert(), вы не можете вызвать "ОК", потому что вызов предупреждения блокирует обычный цикл событий JS.

Однако вы должны иметь возможность заменить window.alert и window.confirm своей собственной функцией, которая ничего не делает:

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

Поместите их вверху своего JS, прежде чем что-либо загрузится, и последующие вызовы alert() или confirm() будут вызывать их вместо этого.

Ответ 2

Вам нужно что-то вроде:

<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>