Полезные советы, неформальные пояснения к официальным сообщениям, инсайдерская информация о процессе разработки Selenium и всякое другое
Недавно ученики моего курса Программирование для тестировщиков пришли ко мне с жалобой – тесты, которые у них успешно выполнялись в браузерах FireFox и Internet Explorer по непонятной причине падали в браузере Google Chrome. Когда я посмотрел, что происходит, мне показалось, что я вернулся лет на пять в прошлое – налицо были все симптомы проявления same origin policy, с которым давно уже все научились бороться при использовании браузеров Internet Explorer и FireFox ...
В последнее время развелось очень много различных AJAX-приложений. По сути автоматизация тестирования такого приложения не отличается от автоматизации тестирования обычного WEB-приложения, но есть несколько тонкостей. Одна из тонкостей — это как раз ожидание завершения всех AJAX-запросов. Например, если отметка некого checkbox’а на странице вызывает обновление какого-нибудь select’a по AJAX-запросу, то тест, который сразу после отметки выбирает конкретный option, свалится, т.к. этого option’a там не будет. А всё потому, что сам тест выполняется намного быстрее чем AJAX-запрос на обновление списка. В данном случае у автоматизатора есть несколько выходов ...
Эта статья завершает серию, посвящённую снятию скриншотов при выполнении автотестов, разработанных с использованием Selenium и TestNG ...
В предыдущей заметке мы сделали расширение Selenium RC, упрощающее операции, связанные с ожиданием загрузки страниц веб-приложения. Но те, кто занимается тестированием AJAX-приложений, с этими операциями сталкиваются редко, им приходится работать с другими событиями – появление и исчезновение элементов интерфейса, а также изменение их свойств (таких как, например, видимость или цвет). Поэтому сейчас мы добавим в наше расширение набор операций, предназначенных для ожидания таких событий ...
Оставим на время в стороне тему снятия скриншотов в Selenium, поговорим об ожидании тех или иных событий, то есть о методах, название которых содержит слово wait. В этой заметке мы сделаем расширение стандартного класса DefaultSelenium, которое облегчит работу с классическими (не-AJAX) приложениями, сократив количество рутинного кода, предназначенного для ожидания загрузки страниц ...