Королёв Е.В. Ит-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. Без этого шаги тестов могли завершаться до того, как элементы на странице были загружены или стали доступны. Благодаря этой технике тесты стали более стабильными, особенно для динамических веб-страниц. В результате данной работы я освоил основные принципы создания автоматизированных тестов.