1.27M
Category: programmingprogramming

Автоматизация тестирования с использованием selenium

1.

АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ
SELENIUM
ДИТ
декабрь 2021 год

2.

О ЧЕМ ДАННЫЙ КУРС
1. Selenium
2. Поиск элементов
3. Selenium WebDriver
4. Методы Selenium WebDriver
5. Apache Maven
6. Junit и TestNG
7. Шаблоны проектирования
8. Allure
9. Технология BDD
10. Запуск автотестов
2

3.

SELENIUM
3

4.

SELENIUM - КАК ИНСТРУМЕНТ АВТОМАТИЗАЦИИ
1.Selenium Grid
2.Selenium IDE (до FF53)
3.Selenium 1 (Selenium Remote Control)
4.Selenium 2 (или 3, а может 4) WebDriver
4

5.

SELENIUM WEBDRIVER
Selenium WebDriver – это набор библиотек для языков программирования, которые позволять
браузером.
Что необходимо для работы инструмента:
1. Браузер, работу которого разработчик будет автоматизировать, определенной версии,
установленный на определенной ОС.
2. Драйвер – driver является web-сервисом. Сервис отправляет команды браузеру (запуск,
работа, закрытие)
3. Тест – script, определенный набор команд на языке программирования для driver-a.
5

6.

ПОДДЕРЖИВАЕМЫЕ ПЛАТФОРМЫ
6

7.

ПОИСК ЭЛЕМЕНТОВ
7

8.

DOM – DOCUMENT OBJECT MODEL
DOM
• - это программный интерфейс API для HTML и XML документов.
• - структурированное представление документа
• - определяет как и каким образом структура документа может быть доступна для программ,
которые могут изменять содержимое и структуру документа
• - объединяет веб-страницу и языки программирования (например. java script)
Веб-страница – это HTML документ, который может быть представлен в окне браузера.
DOM поддерживает объектно-ориентированное представление веб-страницы, позволяя ее
изменение при помощи скриптовых языков программирования.
8

9.

DOM
HTML
HEAD
BODY
TITLE
P
sample
Voluptatem accu…
9

10.

ТИПЫ ЛОКАТОРОВ
Самый быстрый
By.id
By.name
By.cssSelector
By.calssName
By.tagName
By.linkText
By.partionalLinkText
By.xpath
СКОРОСТЬ ПОИСКА
ЛОКАТОРОВ
Самый медленный
10

11.

CSS
11

12.

XPATH
12

13.

ОСНОВНЫЕ ПОНЯТИЯ SELENIUM
1. WebDriver – отвечает за управление браузером. Ход теста строится вокруг
объекта этого класса.
2. WebElement – класс-представление веб-элемента. Содержит в себе методы
для взаимодействия пользователя с элементами страницы и получения их
текущего статуса.
3. By – локатор веб-элемента. Класс для поиска нужного элемента на странице.
13

14.

ДРАЙВЕРЫ
Chrome (chromedriver) – драйвер для браузера Google Chrome
https://chromedriver.chromium.org/downloads
System property: "webdriver.chrome.driver“ set to executable
Firefox (geckodriver) – драйвер для браузера Mozilla Firefox
https://github.com/mozilla/geckodriver/releases
System property: " webdriver.gecko.driver“ set to executable
14

15.

ОСНОВНЫЕ ФУНКЦИИ WEBDRIVER
Команды навигации
driver.navigate().to("http://");
driver.get("http://"); - перейти по указанному адресу
driver.navigate().forward(); - перейти на следующую страницу
driver.navigate().back(); - перейти на предыдущую страницу
Команды окна браузера:
•driver.close() –закрыть текущее окно
•driver.getTitle() -возвращает Title текущей страницы
•driver.getCurrentUrl() –возвращает текущий адрес страницы
•driver.getWindowHandle()-возвращает ссылку на текущее окно
•driver.switchTo().window("windowName")–переключение между окнами
•driver.switchTo().frame("frameName")–переключение между фреймами
•driver.quit()–выход из драйвера, закрытие всех окон связанных с ним
15

16.

ОСНОВНЫЕ ФУНКЦИИ WEBDRIVER
Ожидания:
1. Явные ожидания
final Wait<WebDriver> wait = new WebDriverWait(driver, 5, 1000);
wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.id("example_id"))));
2. Неявные ожидания:
driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.MINUTES); - ожидание загрузки страницы
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); - ожидание появления элементов на странице
16

17.

РАБОТА С ЭЛЕМЕНТАМИ
• Поиск элементов:
WebElement element = driver.findElement(By.xpath("example_xpath"));
List<WebElement> elements = driver.findElements(By.cssSelector("selector"));
• Действия с элементами:
element.sendKeys(“text_here”) – ввод текста в поле
element.clear(); - очистка текстового поля
element.click(); - выполнить нажатие на элемент
element.getAttribute("attr_name"); - получить значение атрибута xml-узла
element.getText(); - возвращает текстовое значение xml-узла
...
• Проверка элементов:
element.isDisplayed(); - отображен на странице
element.isEnabled(); - доступен на странице для выполнения действия
element.isSelected(); - находится в фокусе
17

18.

ОШИБКИ WEBDRIVER
1.
2.
3.
4.
ElementNotVisibleException – элемент присутствует на странице, но не видим
NoSuchElementException – элемент не найден на странице
InvalidSelectorException – в выражении локатора (xpath) найдены синтаксические ошибки
StaleElementReferenceException – возникает тогда, когда в момент обращения к ранее
найденному элементу уже изменился DOM HTML-страницы
18

19.

ПРАКТИЧЕСКИЙ ПРИМЕР
19

20.

ДОМАШНЕЕ ЗАДАНИЕ
Сценарий
1. Перейти по адресу http://www.rshb.ru/
2. Нажать на зеленую кнопку «Интернет-банк» в правом верхнем углу.
Откроется страница интернет банка.
3. Проверить, что тайтл страницы изменился на «Интернет-банк РСХБ»
4. В поле логин и пароль ввести значение «тест»
5. Проверить, что в поле логина и пароля введены значения «тест»
6. Нажать на кнопку «Войти»
7. Зафиксировать появления надписи «Логин или пароль введены неверно.»
20
English     Русский Rules