Инструменты автоматизации функционального тестирования семейства 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 также доступны для редактирования.
Полное описание команд и примеры их использования можно найти на сайте проекта.