Нажав "ОК" в окне оповещения или подтверждения через 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>