- •Лабораторная работа №3. Автоматизация тестирования с помощью gui
- •Теоретическая часть Введение
- •Установка
- •Возможности ide Панель меню
- •Панель инструментов (Toolbar)
- •Панель тестового сценария
- •Вкладки “Log”, “Reference”, “ui-Element”, “Rollup” (“Лог”, “Справка”, “ui-Element”, “Группировка”)
- •Справка
- •Ui-Element и Группировка
- •Создание тестовых сценариев
- •Добавление проверок через контекстное меню
- •Редактирование
- •Запуск тестовых сценариев
- •Язык команд Selenium
- •Синтаксис языка команд Selenium
- •Наборы тестов
- •Часто используемые команды Selenium
- •Проверка элементов страницы
- •Выбор между командами “assert” и “verify”
- •VerifyTextPresent
- •VerifyElementPresent
- •VerifyText
- •Нахождение элементов
- •Нахождение по идентификатору
- •Нахождение по “id”
- •Нахождение по “name”
- •Нахождение с помощью xPath
- •Нахождение гиперссылок по тексту ссылки
- •Нахождение по dom
- •Нахождение с помощью css
- •Проверка соответствия шаблону
- •Подстановка
- •Шаблоны регулярных выражений
- •Точное совпадение
- •Команды “AndWait”
- •Команды waitFor в приложениях ajax
- •Последовательность выполнения и управление исполнением программы
- •Команды сохранения и переменные Selenium
- •StoreElementPresent
- •StoreText
- •StoreEval
- •JavaScript и параметры языка команд Selenium
- •Использование JavaScript в параметрах, принимающих фрагмент JavaScript
- •Использование JavaScript в “обычных” параметрах
- •Echo – команда вывода данных на экран
- •Точки останова и точки старта
- •Пошаговое выполнение тестового сценария
- •Кнопка “Найти”
- •Просмотр исходного кода страницы при отладке
- •Помощь в построении локаторов
- •Составление набора тестов
- •Практическая часть
StoreEval
Эта команда принимает в качестве первого параметра фрагмент JavaScript. В следующем разделе более подробно рассмотрено внедрение JavaScript в язык команд Selenium. “storeEval” позволяет тестовому сценарию сохранять результат исполняемого скрипта в переменной.
JavaScript и параметры языка команд Selenium
JavaScript можно использовать как в параметрах специальных команд, которые принимают на вход фрагмент JavaScript, так и с “обычными” параметрами.
Часто вам нужно внутри фрагмента JavaScript получить доступ к значению некоторой переменной Selenium. Все переменные, создаваемые тестовым сценарием, сохраняются в ассоциативный массив JavaScript, который называется storedVars. В ассоциативном массиве используются строковые индексы, а не последовательные числовые. Для того чтобы получить доступ к переменной или изменить её значение из фрагмента JavaScript, вам следует обращаться к ней, как к storedVars[‘ИмяВашейПеременной’].
Использование JavaScript в параметрах, принимающих фрагмент JavaScript
В Selenium есть несколько команд, принимающих в качестве параметра фрагмент JavaScript: assertEval, verifyEval,storeEval и waitForEval. Параметр не требует специального синтаксиса. Достаточно просто поместить фрагмент JavaScript в подходящее поле, обычно это поле Цель (так как эти команды как правило имеют один параметр).
В примере ниже показано использование фрагмента JavaScript для вычисления значения числового выражения:
Команда |
Цель |
Значение |
store |
10 |
hits |
storeXpathCount |
//blockquote |
blockquotes |
storeEval |
storedVars[‘hits’]-storedVars[‘blockquotes’] |
paragraphs |
В следующем примере показано, как можно делать вызовы методов, в данном случае - обращаться к методамtoUpperCase` и ``toLowerCase строковых объектов JavaScript.
Команда |
Цель |
Значение |
store |
Edith Wharton |
name |
storeEval |
storedVars[‘name’].toUpperCase() |
uc |
storeEval |
storedVars[‘name’].toLowerCase() |
lc |
Использование JavaScript в “обычных” параметрах
JavaScript также может применяться в генерации значений для параметров, которые вообще говоря не принимают код на языке JavaScript. В этом случае необходимо использовать специальный синтаксис – фрагмент JavaScript должен быть помещен в фигурные скобки, перед которыми должна быть приписка javascript, вот так: javascript {*этоВашКод*}. Ниже приведен пример, в котором у второго параметра команды type значение генерируется JavaScript-кодом:
Команда |
Цель |
Значение |
store |
league of nations |
searchString |
type |
q |
javascript{storedVars[‘searchString’].toUpperCase()} |
Echo – команда вывода данных на экран
В Selenium существует команда для отображения текста в поле вывода данных вашего теста. Это может пригодиться для отслеживания хода выполнения тестов. Команда echo также будет полезна для обеспечения контекста выводимым результатам тестирования, позволяющего быстрее найти расположение дефекта на странице. И, наконец, с помощью оператора echo можно выводить содержимое переменных Selenium.
Команда |
Цель |
Значение |
echo |
Начинаем проверку подвала страницы... |
|
echo |
Пользователь - ${userName} |
|