Загрузил Egor K.

Selenium WebDriver Java: Лабораторная работа по автоматизации тестирования

Королёв Е.В.
Ит-12, В-11
ЛАБОРАТОРНАЯ РАБОТА №6 Автоматизированное
тестирование Selenium WebDriver на Java
Цель: изучить возможности функционального тестирования на примере
автоматизированных тестов, разработанных с использованием Selenium
WebDriver.
Выполнение работы
Перед началом разработки тестов необходимо загрузить архив с
библиотеками, необходимыми для работы с веб-драйвером Selenium. После
загрузки архив следует разархивировать, а затем создать новый проект, в
который будут добавлены все установленные библиотеки. На весь процесс
настройки проекта перед началом работы с веб-драйвером потребуется
примерно 2-4 минуты.
На втором этапе необходимо создать отдельный класс, в котором будут
реализованы десять уникальных тестов для сайта ФПТ ВГТУ.
public class SeleniumWeb_AllTests {
private WebDriver driver;
@Before
public void setUp() {
driver = new ChromeDriver();
driver.get("https://fpt.vstu.by/");
}
@After
public void tearDown() {
if (driver != null) {
driver.quit();
}
}
ДЕСЯТЬ УНИКАЛЬНЫХ ТЕСТОВ
1. TestNumberOne (проверка текущего заголовка страницы)
@Test
public void TestNumberOne() {
System.out.println("T-01");
String title = driver.getTitle();
assertTrue(title.contains("Факультет
технологий»"));
«Производственных
System.out.println("Текущий заголовок страницы: " + title);
}
2. TestNumberTwo (проверка сущ. Контейнера с классом event)
@Test
public void TestNumberTwo() {
System.out.println("T-02");
WebElement menu = driver.findElement(By.className("events"));
assertTrue(menu.isDisplayed());
System.out.println("Существует контейнер с классом events: " +
menu.isDisplayed());
}
3. TestNumberThree (проверка адреса …/contacts)
@Test
public void TestNumberThree() {
System.out.println("T-03");
driver.navigate().to("https://fpt.vstu.by/category/contacts/");
assertTrue(driver.getCurrentUrl().contains("/category/contacts/"));
System.out.println("Текущий адрес: " + driver.getCurrentUrl());
}
4. TestNumberFour (проверка сущ. кнопки на странице)
@Test
public void TestNumberFour() {
System.out.println("T-04");
WebElement detailsButton = driver.findElement
("a.organization__news-card__descriptionlink[href='https://fpt.vstu.by/news/ekspertnoe-mnenie/']"));
(By.cssSelector
assertTrue(detailsButton.isDisplayed());
System.out.println("Кнопка
detailsButton.getText());
найдена
с
текстом:
"
}
5. TestNumberFive (проверка адреса после перехода на “Новости”)
@Test
public void TestNumberFive() {
System.out.println("T-05");
driver.navigate().to("https://fpt.vstu.by/category/news/");
assertTrue(driver.getCurrentUrl().contains("/category/news/"));
System.out.println("Текущий URL: " + driver.getCurrentUrl());
}
+
6. TestNumberSix (поиск элемента по селектору -> переход по веб
элементу и проверка текущего адреса)
@Test
public void TestNumberSix() {
System.out.println("T-06");
WebElement
universityLink
driver.findElement(By.cssSelector("a.header__top-block__menulink[href='https://vstu.by/']"));
System.out.println("Ссылка
universityLink.getText());
найдена
с
текстом:
=
"
+
universityLink.click();
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.urlContains("vstu.by"));
System.out.println("Текущий URL: " + driver.getCurrentUrl());
assertTrue(driver.getCurrentUrl().contains("vstu.by"));
}
7. TestNumberSeven (проверка правильного перенаправления по
адресу)
@Test
public void TestNumberSeven() {
System.out.println("T-07");
driver.navigate().to("https://abiturient.vstu.by/");
assertTrue(driver.getCurrentUrl().contains("abiturient"));
System.out.println("Текущий адрес: " + driver.getCurrentUrl());
assertTrue(driver.getCurrentUrl().contains("abiturient.vstu.by"));
}
8. TestNumberEight (проверка перехода на интересующийся адрес ->
поиск элемента по полному xpath на текущей странице)
@Test
public void TestNumberEight() {
System.out.println("T-08");
driver.navigate().to("https://fpt.vstu.by/category/student/timetable/");
assertTrue(driver.getCurrentUrl().contains("student"));
String title = driver.getTitle();
System.out.println("Текущий заголовок страницы: " + title);
WebElement
element
=
driver.findElement(By.xpath("/html/body/main/section[1]/div/div/div[1]/div[2]/div
/section[2]/div/div/div/div/div/h3"));
assertNotNull(element);
System.out.println("Текст найден: " + element.getText());
}
9. TestNumberNine (проверка отображения карусели через xpath на
главной странице)
@Test
public void TestNumberNine() {
System.out.println("T-09");
WebElement element = driver.findElement(By.xpath("//*[@id=\"slickslide00\"]"));
assertNotNull(element);
System.out.println("Текст найден: " + element.getText());
}
10. TestNumberTen (проверка отображения логотипа на главной
странице)
@Test
public void TestNumberTen() {
System.out.println("T-10");
WebElement
element
=
driver.findElement(By.xpath("/html/body/header/div[2]/div/div/div/a/img"));
assertNotNull(element);
System.out.println("Логотип найден.");
}
Запустим автоматизированное тестирование нашего сайта. Все десять
уникальных тестов были успешно пройдены через веб драйвер браузера
chrome. Результаты тестирования представлены ниже.
ALL TEST`S PASSED!
Вывод: в ходе работы с Selenium WebDriver в NetBeans (Java project)
были изучены основы автоматизации веб-приложений, включая поиск
элементов через CSS-селекторы и XPath. Также я познакомился с важностью
явных ожиданий через WebDriverWait. Без этого шаги тестов могли
завершаться до того, как элементы на странице были загружены или стали
доступны. Благодаря этой технике тесты стали более стабильными, особенно
для динамических веб-страниц. В результате данной работы я освоил
основные принципы создания автоматизированных тестов.