Store, Echo и всплывающие окна в Selenium IDE

Из этой статьи вы узнаете, как использовать команды store и echo, а также как обрабатывать различные всплывающие окна в Selenium IDE.

Содержание

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Переменные в Selenium IDE

Для сохранения переменных в Selenium IDE мы используем команду store. На рисунке ниже значение “tutorial” сохраняется в переменной с именем myVariable.

Сохранение переменной с помощью команды "store"

Для доступа к переменной достаточно заключить ее в фигурные скобки и предварить символом доллара: ${…}. Например, чтобы ввести значение “myVariable” в текстовое поле “userName” на странице авторизации на сайте туристической компании Mercury Tours, необходимо указать ${myVariable} в поле Value.

Доступ к переменной

StoreElementPresent

Эта команда сохраняет либо “true”, либо “false” в зависимости от наличия указанного элемента. Приведенный ниже сценарий сохраняет булевы значения “true” для var1 и “false” для var2.

Для проверки мы используем команду echo, чтобы вывести на экран значения var1 и var2. В качестве базового URL для приведенной ниже иллюстрации была выбрана домашняя страница Mercury Tours.

Команда Echo

StoreText

Эта команда используется для сохранения внутреннего текста элемента в переменной. На рисунке ниже внутренний текст тега в Facebook сохраняется в переменной с именем textVar.

Команда StoreText

Поскольку это единственный элемент на странице, можно смело использовать в качестве цели css=h1. На изображении ниже видно, что Selenium IDE смогла сохранить строку “Sign Up” в переменной textVar, корректно выведя её значение.

Команда StoreText: вывод значения

Всплывающие окна с предупреждениями

Предупреждения (Alerts) – это, пожалуй, самая простая форма всплывающих окон. Наиболее часто при работе с предупреждениями используются следующие команды Selenium IDE:

КомандаИспользование
assertAlert
assertNotAlert
Получает сообщение из предупреждения и сравнивает его с указанным вами строковым значением, используя утверждение (assert)
assertAlertPresent
assertAlertNotPresent
Утверждает наличие или отсутствие предупреждения
storeAlertПолучает сообщение из предупреждения и сохраняет его в переменной, которую вы укажете
storeAlertPresentВозвращает TRUE, если предупреждение присутствует; в противном случае — FALSE
verifyAlertverifyNotAlertПолучает сообщение из предупреждения и проверяет, соответствует ли оно указанному вами строковому значению
verifyAlertPresent
verifyAlertNotPresent
Проверяет наличие или отсутствие предупреждения

Помните о двух моментах при работе с предупреждениями:

  • Selenium IDE автоматически нажимает на кнопку OK в окне предупреждения. Поэтому вы не сможете увидеть само предупреждение.
  • Selenium IDE не может обрабатывать предупреждения, которые находятся внутри функции onload() страницы. Она может обрабатывать только те предупреждения, которые генерируются после полной загрузки страницы.

В этом примере мы используем команду storeAlert, чтобы показать, что даже если Selenium IDE не отобразила само предупреждение, она все равно смогла получить из него сообщение.

Шаг 1. В Selenium IDE установите базовый URL как http://jsbin.com. и полный URL как http://jsbin.com/usidix.

Шаг 2. Создайте скрипт, как показано на изображении ниже:

Команда storeAlert

Шаг 3.  Выполните скрипт. Обратите внимание, что Selenium IDE не покажет само предупреждение:

Окно предупреждения, по которому можно кликнуть в ручном режиме

Подтверждения

Подтверждения (Confirmations) – это всплывающие окна с кнопками ОК и ОТМЕНА. От предупреждений они отличаются тем, что в предупреждениях есть только кнопка ОК. Команды, которые можно использовать при работе с подтверждениями, аналогичны командам, используемым при работе с предупреждениями:

  • assertConfirmation / assertNotConfirmation
  • assertConfirmationPresent / assertConfirmationNotPresent
  • storeConfirmation
  • storeConfirmationPresent
  • verifyConfirmation / verifyNotConfirmation
  • verifyConfirmationPresent / verifyConfirmationNotPresent

Однако для работы с подтверждениями есть дополнительные команды. С их помощью можно указать Selenium, какую опцию выбрать – кнопку OK или ОТМЕНА:

  • chooseOkOnNextConfirmation / chooseOkOnNextConfirmationAndWait
  • chooseCancelOnNextConfirmation

Эти команды следует использовать перед командой, вызывающей окно подтверждения, чтобы Selenium IDE заранее знала, какой вариант выбрать. Опять же, во время выполнения сценария вы не сможете увидеть фактическое окно подтверждения.

Протестируем веб-страницу с кнопкой, которая была закодирована таким образом, чтобы показывать, нажал ли пользователь кнопку OK или ОТМЕНА.

Шаг 1. В Selenium IDE установите базовый URL как http://jsbin.com и полный URL как http://jsbin.com/enifaf.

Шаг 2. Создайте скрипт, как показано ниже. На этот раз мы сначала нажмем кнопку OK.

Команда chooseOkOnNextConfirmation

Шаг 3.  Выполнив скрипт, можно заметить, что фактического подтверждения вы не видите, но веб-страница смогла указать, какую кнопку нажала Selenium IDE.

Шаг 4. Замените команду chooseOkOnNextConfirmation на chooseCancelOnNextConfirmation и выполните скрипт еще раз.

Selenium IDE выводит сообщение о том, что вы кликнули Cancel

Несколько окон

Если вы случайно щелкнули по ссылке, которая открывает отдельное окно, то прежде чем вы сможете получить доступ к элементам внутри него, нужно указать Selenium IDE выбрать это окно. Для этого в качестве локатора используется заголовок окна.

Для переключения между окнами используется команда selectWindow.

Мы будем использовать ссылку http://jsbin.com/ocinaj/1 с названием “First Window”. Гиперссылка “here”, находящаяся на этой странице, откроет Facebook в новом окне, после чего мы дадим команду Selenium IDE выполнить следующие действия:

  • Передать управление от родительского окна новому открывшемуся окну Facebook с помощью команды selectWindow и его заголовка в качестве локатора
  • Проверить название нового окна
  • Вновь выбрать исходное окно, используя команду selectWindow и значение “null” в качестве таргета
  • Проверить заголовок текущего выбранного окна
Окно Фейсбук и родительское окно

Шаг 1. Установите базовый URL на http://jsbin.com.

Шаг 2. Создайте скрипт, как показано ниже.

Команда selectWindow

Команда pause нужна для того, чтобы дождаться загрузки только что запущенного окна и получить доступ к его заголовку.

Шаг 3. Выполните скрипт. Обратите внимание, что тест-кейс пройден, то есть мы смогли успешно переключиться между окнами и проверить их заголовки.

Скрипт: список команд и соответствующих целей (таргетов)

Помните, что при установке таргетного значения “null” для команды selectWindow будет автоматически выбрано родительское окно. То есть, в данном случае – окно, в котором находится элемент link=here.

Примечание: Facebook изменил название страницы с момента создания этой статьи. Пожалуйста, адаптируйте код соответствующим образом.

Резюме

  • Команда Store (и все её варианты) используется для хранения переменных в Selenium IDE
  • Команда Echo используется для вывода строкового значения или переменной
  • При выводе в консоль или использовании в элементах переменные заключаются в символы ${…}
  • Selenium IDE автоматически нажимает кнопку OK при обработке предупреждений
  • При работе с окнами подтверждений можно указать Selenium IDE, какую опцию выбрать:
    • chooseOkOnNextConfirmation / chooseOkOnNextConfirmationAndWait
    • chooseCancelOnNextConfirmation
  • Заголовки окон используются в качестве локаторов при переключении между окнами браузера
  • При использовании команды selectWindow установка таргета в значение “null” автоматически направит Selenium IDE на выбор родительского окна.

Перевод статьи «Store Variables, Echo, Alert, PopUp handling in Selenium IDE».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *