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

В данной заметке рассмотрим основные команды в 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 также доступны для редактирования.

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