Основные команды в Selenium IDE / RC

Инструменты автоматизации функционального тестирования семейства Selenium на сегодняшний день достигли бешеной популярности. Невозможно представить специалиста по тестированию, который, как минимум, не слышал про данный инструмент. Каждый день все новые и новые специалисты по тестированию начинаю осваивать Selenium. Именно для новичков, желающих освоить основы Selenium IDE / RC, и предназначена эта заметка. В данной заметке будут представленны основные команды в Selenium IDE / RC.

Базовую информацию о инструментах автоматизации Selenium вы можете получить перейдя по этой ссылке.

В Selenium существует три типа команд:

  • Действия – функциональное действие над тестируемым веб-приложением в браузере. Например, заполнение полей, нажатие на кнопку и другие;
  • Проверки – выполнение проверок на тестируемой странице. Например, проверка того, что определенное поле формы имеет указанное значение, или проверка заголовка окна;
  • Ожидания – организация как, сколько и какое событие Selenium будет дожидаться (ожидания загрузки страницы, ajax и т.д.).

Действия (actions). Синтаксис команд-действий в Selenium RC и Selenium IDE мало чем отличается, в примерах я буду приводит синтаксис для Selenium RC . Набор действий в Selenium достаточно широк, основные (самые используемые) действия:

  • open – открыть страницу в браузере по определенному адресу. Синтаксис команды – Open(string url). Пример использования – selenium.Open("http://blogs.logicsoftware.net/qa/");
  • click – произвести нажатие по элементу страницы. Синтаксис команды – Click(string locator). Пример использования – selenium.Click("LoginButton");
  • type – ввести значение в текстовое поле страницы. Синтаксис команды – Type(string locator, string value). Пример использования – selenium.Type("id_TextField_1", "test");
  • select – выбрать значение из выпадающего списка. Синтаксис команды – Select(string selectLocator, string optionLocator). Пример использования – selenium.select (TimeEntryTaskList, "Activity1"). В качестве опции для выбора элемента можно использовать следующие локаторы: label, value, id, index. При использовании локатора label для optionLocator, можно искать элемент по частичному совпадению label=regexp:Locator;
  • selectWindow – переключить фокус на другое окно. Синтаксис команды – SelectWindow(string windowID). Пример использования – selenium.selectWindow("id_dashboard");
  • getTitle – возвращает Title для текущей страницы. Синтаксис команды – GetTitle(). Пример использования – selenium.GetTitle();
  • getValue – возвращает значение элемента страницы. Синтаксис команды – GetValue(string locator). Пример использования – selenium.GetValue("id_TextBox1");
  • goBack – вернуться на предыдущую страницу. Синтаксис команды – GoBack(). Пример использования – selenium.GoBack();
  • close – закрыть текущее окно. Синтаксис команды – Close(). Пример использования - selenium.Close().

При использовании команд Selenium, вам сперва стоит научится работать с локаторами. Локатор (locator) – это строка, уникально идентифицирующая элемент веб-страницы. То есть то, с помощью чего ищется ищутся элементы на странице. Для того, чтобы выполнить действие на странице Selenium необходимо знать, с каким элементом на странице ему нужно выполнить требуемое действие. Для этого и служат локаторы. Практически для всех команд первым параметром идет именно локатор, поэтому стоит сразу учиться правильно подбирать локаторы. Типы локаторов в Selenium:

  • id – в качестве локатора используется атрибут id (уникальный идентификатор) элемента страницы;
  • name – в качестве локатора используется атрибут name элемента страницы;
  • identifier – используется атрибут id элемента, если по id-у элемент не найден, то поиск будет вестись по атрибуту name;
  • dom – поиска элемента происходит по DOM выражению;
  • xpath – используется для поиска элемента по XPath выражению;
  • link – поиск ссылок с указанным текстом;
  • css – данный тип локаторов основан на описаниях таблиц стилей (CSS).

Проверки (checks). Проверки одна из главных составляющих при написании теста. В Selenium IDE выделяется два типа проверок – assert и verify. Различие между ними заключается в том, что если тест “падет” при выполнении проверки assert, то тест прекращает свою работу и помечается как failed. А если не выполняется проверка verify, то тест отметит данную проверку как failed, но продолжит свою работу. В Selenium RC имена команд-проверок немного отличаются, нету деления проверок на assert и verify, вызов проверки начинается с Is. Например, команда в Selenium RC – IsElementPresent(string locator), в Selenium IDE данная команда будет иметь следующий вид verifyElementPresent (locator). Набор проверок в Selenium также достаточно широк. Команды, представленные для Selenium IDE:

  • verifyLocation / assertLocation – проверить адрес текущей страницы. Синтаксис команды – verifyLocation(URL);
  • verifyTitle / assertTitle – проверить значение Title страницы. Синтаксис команды – verifyTitle (Title);
  • verifyValue / assertValue – проверить значение элемента страницы. Синтаксис команды – verifyValue (locator, value);
  • verifyTextPresent / assertTextPresent – проверить, что страница содержит указанный в команде текст. Синтаксис команды – verifyTextPresent (value);
  • verifyElementPresent / assertElementPresent – проверить, есть ли на странице указанный элемент. Синтаксис команды – verifyElementPresent (locator).

Ожидания (wait). При выполнении некоторых команд, необходимо дожидаться загрузки страницы, или ее определенных элементов. Для этого предназначены команды-ожидания.

  • WaitForCondition – ожидание выполнения определенного события на странице, указанного в параметре script (например, загрузка определенного элемента страницы, или страницы в целом). Синтаксис команды – WaitForCondition(string script, string timeout);
  • WaitForFrameToLoad – ждет загрузки фрэйма на странице указанное количество времени. Синтаксис команды – WaitForFrameToLoad(string frameAddress, string timeout);
  • WaitForPageToLoad – ждет загрузки страницы указанное количество времени. Синтаксис команды – WaitForPageToLoad(string timeout);
  • WaitForPopUp – ждет появления PopUp элемента страницы указанное количество времени. Синтаксис команды – WaitForPopUp(string windowID, string timeout);

Набор команд в Selenium можно расширять с помощью добавления готовых библиотек, фрэймворков или написания своей собственной пользовательской библиотеки команд. Существующие команды Selenium также доступны для редактирования.

Полное описание команд и примеры их использования можно найти на сайте проекта.

Спасибо за статью!

Небольшое пожелание - поскольку данные статья рассчитана на новичков, то было бы неплохо добавить уточнение, что приведенная информация касается Selenium 1. А в идеальном варианте было бы отлично иметь такую же краткую информацию о принципах и основных командах Selenium WebDriver aka Selenium 2 - у меня есть пару людей, которые бы с удовольствием и пользой почитали :)

Спасибо за отзыв! Про WebDriver можете почитать некоторые вводные материалы на моем блоге http://bugscatcher.net/. Скоро появится данный материал и на данном портале.

А как нажать на кнопку в попап окне? Есть такая команда?