Selenium Manager - łatwiejszy start z automatyzacją testów Selenium dzięki nowej funkcjonalności

Konfiguracja sterowników przeglądarek (ang. driver) w Selenium była przez wiele lat zadaniem, które użytkownicy musieli wykonywać manualnie lub z pomocą dodatkowcyh bibliotek, takich jak na przykład webdriver_manager w Python, czy WebDriverManager w Javie. Nie jest to proces skomplikowany, ale wraz z coraz krótszymi cyklami wydawania przeglądarek, zadanie utrzymania sterowników w zgodzie z wersją przeglądarki staje się coraz trudniejsze.

Selenium Manager to nowe narzędzie, które automatycznie zarządza sterownikami i pomaga w łatwym uruchomieniu Selenium. Selenium Manager skonfiguruje sterowniki dla przeglądarek Chrome, Firefox i Edge, jeśli nie są one dostępne w PATH. Narzędzie to jest dostępne od Selenium w wersji 4.6.

Aby uruchomić test Selenium z użyciem Selenium Manager, wystarczy zainstalować Chrome, Firefox lub Edge. Jeśli masz już zainstalowane sterowniki przeglądarki lub używasz menadżera sterowników, ta funkcja zostanie zignorowana.

Wykorzystanie Selenium Manager w projekcie Python

Aby wykonać kroki z poniższego przykładu, potrzebujesz emulator terminala (np. cmder lub iTerm2), Python w wersji 3 oraz dowolny edytor tekstu. Możesz skorzystać również z gotowego szablonu projektu, który znajdziesz w repozytorium pytest-selenium-template.

  • Utwórz nowy projekt Python, skonfiguruj środowisko wirtualne, a następnie zainstaluj pytest oraz Selenium:
1
2
3
4
5
6
mkdir "my-project" && cd "my-project"
mkdir tests
python -m venv venv
(Windows) venv\Scripts\activate.bat
(Linux, macOS) source venv/bin/activate
pip install pytest selenium
  • Dodaj nowy plik test_selenium.py do katalogu tests:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import pytest
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By


@pytest.fixture()
def driver():
d = Chrome()
d.implicitly_wait(1)
d.get("https://qalabs.pl")
yield d
d.quit()


def test_hello_selenium_chrome(driver):
assert driver.title == "QA Labs - Warsztaty dla Specjalistów IT"
assert driver.find_element(By.CSS_SELECTOR, "#page-top > header div.intro-heading").text == "QA Labs"
assert driver.find_element(By.CSS_SELECTOR, "#page-top > header div.intro-lead-in").text == "Automatyzacja aplikacji internetowych w technologii Java i Python"
  • Uruchom testy:
1
pytest

Gotowe! Możesz zaimportować projekt do dowolnego IDE i rozpocząć pracę nad automatyzacją testów.

Wykorzystanie Selenium Manager w projekcie Java

Aby wykonać kroki z poniższego przykładu, potrzebujesz emulator terminala (np. cmder lub iTerm2), Javę w wersji 11 lub wyższej, Gradle oraz dowolny edytor tekstu. Możesz skorzystać również z gotowego szablonu projektu, który znajdziesz w repozytorium junit5-selenium-gradle-template.

  • Utwórz nowy projekt Java używając Gradle i dodaj zależności JUnit 5 oraz Selenium:
1
2
mkdir "my-project" && cd "my-project"
gradle init --type java-application --test-framework junit-jupiter
  • W dowolnym edytorze zmodyfikuj plik build.gradle i dodaj do niego zależność Selenium:
1
2
3
dependencies {
testImplementation("org.seleniumhq.selenium:selenium-java:4.8.1")
}
  • Dodaj nowy plik TestSelenium.java do katalogu src/test/java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

import static org.junit.jupiter.api.Assertions.assertEquals;

class TestSelenium {

private WebDriver driver;

@BeforeEach
void beforeEach() {
driver = new FirefoxDriver();
}

@AfterEach
void afterEach() {
driver.quit();
}

@Test
void helloSelenium() {
driver.get("https://qalabs.pl");
assertEquals(driver.getTitle(), "QA Labs - Warsztaty dla Specjalistów IT");
}
}

  • Uruchom testy:
1
./gradlew clean test

Gotowe! Możesz zaimportować projekt do dowolnego IDE i rozpocząć pracę nad automatyzacją testów.

Podsumowanie

Selenium Manager to nowe narzędzie, które automatycznie zarządza sterownikami i pomaga w łatwym uruchomieniu Selenium. Selenium Manager skonfiguruje sterowniki dla przeglądarek Chrome, Firefox i Edge, jeśli nie są one dostępne w PATH. Są plany, aby w przyszłości Selenium Manager pobierał nie tylko sterowniki, ale w razie potrzeby i same przeglądarki, co będzie kolejnym dużym ułatwieniem dla wszystkich rozpoczynających swoją przygodę z automatyzacją testów aplikacji internetowych z użyciem Selenium.

Linki

Rafał Borowiec

Nazywam się Rafał Borowiec. Jestem w branży IT od ponad 10 lat, przygodę rozpoczynałem jako tester oprogramowania. Oprócz testowania oprogramowania i zapewniania jakości, specjalizuję się w wytwarzaniu oprogramowania oraz zarządzaniu projektami i zespołami. Chętnie dzielę się wiedzą, prowadzę blog dotyczący programowania, jestem wykładowcą oraz trenerem IT.