Диалоговые окна alert, prompt и confirm
В браузере отключена поддержка диалоговых окон alert, prompt и confirm.
Таким образом чтобы код выполнялся игнорируя вызовы этих диалоговых окон.
Как это работает? Возьмём для примера тестовую страницу https://somovstudio.github.io/test2.html
Нажмем на кнопку "Вызвать Alert"
откроется диалоговое окно
нажав на ОК мы увидим в поле сообщение "Привет Мир"
То есть сообщение "Привет Мир" отобразится в поле только после нажатия на OK в диалоговом окне Alert.
Если нажать на кнопку "Вызвать Confirm" будет задан вопрос и выведен ответ в поле после нажатия на "ОК" (или "Отмена")
Если нажать на кнопку "Вызвать Confirm" будет задан вопрос и выведен ответ в поле после ввода числа и нажатия на "ОК"
Теперь давайте сделаем тоже самое руками автотеста
Файл: ExampleTest5.cs |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Windows.Forms; using System.Threading; using System.Threading.Tasks; using System.IO; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Reflection; using Newtonsoft.Json; using HatFramework; namespace Hat { public class ExampleTest5 { Tester tester; // Главная переменная для работы автотеста // Главная входная функция (с этой функции начинается работа автотеста) public async void Main(Form browserWindow) { tester = new Tester(browserWindow); // Инициализация главной переменной await setUp(); // Функция начала работы с автотестом await test(); // Функция выполнения действий теста await tearDown(); // Функция завершения работы с автотестом } public async Task setUp() { await tester.BrowserFullScreenAsync(); // Устанавливает разрешение браузер на весь экран } public async Task test() { await tester.TestBeginAsync(); // Начало выполнения действий await tester.GoToUrlAsync("https://somovstudio.github.io/test2.html", 5); // Загрузка страницы по указанному адресу await tester.WaitAsync(2); // Ожидание 2 секунду await tester.ClickElementByIdAsync("btnAlert"); // Нажатие кнопки await tester.WaitAsync(2); // Ожидание 2 секунду await tester.ClickElementByIdAsync("btnConfirm"); // Нажатие кнопки await tester.WaitAsync(2); // Ожидание 2 секунду await tester.ClickElementByIdAsync("btnPrompt"); // Нажатие кнопки await tester.TestEndAsync(); // Завершение выполнения действий } public async Task tearDown() { await tester.BrowserCloseAsync(); // Закрывает браузер } } } |
Запустив автотест мы увидим что диалоговые окна не открываются, а данные меняются в поле.
Сначала будет загружена страница в своем состоянии по умолчанию
Затем автотест нажмет кнопку "Вызвать Alert", при этом диалоговое окно не откроется, а в поле сразу появится сообщение "Привет Мир"
Затем автотест нажмет кнопку "Вызвать Confirm", при этом диалоговое окно не откроется, а в поле сразу появится сообщение "Нет (спасибо за ответ)"
Затем автотест нажмет кнопку "Вызвать Prompt", при этом диалоговое окно не откроется, а в поле сразу появится сообщение "Сейчас null год"
Как вы можете видеть, браузер проигнорировал диалоговые окна и вывел значения по умолчанию.
Таким образом диалоговые окна не мешают выполнению автотестов.
Created with the Personal Edition of HelpNDoc: Easily create EPub books