WebDriverManager — это Java-библиотека с открытым исходным кодом, которая осуществляет управление (т. е. загрузку, настройку и обслуживание) драйверов, необходимых для Selenium WebDriver (например, chromedriver, geckodriver, msedgedriver и т. д.), полностью автоматически. Кроме того, WebDriverManager предоставляет другие соответствующие функции, такие как возможность обнаруживать браузеры, установленные в локальной системе, создавать объекты WebDriver (такие как ChromeDriver
, FirefoxDriver
, EdgeDriver
и т. д.) и беспрепятственно запускать браузеры в контейнерах Docker.
Начиная с версии 5, сюда переехала документация WebDriverManager. Этот сайт содержит все функции, примеры, настройки и расширенные возможности WebDriverManager.
Основное использование WebDriverManager — автоматизация управления драйверами. Для использования этой функции вам необходимо выбрать данный менеджер в API WebDriverManager (например, chromedriver()
для Chrome) и вызвать метод setup()
. В следующем примере показан скелет тестового примера с использованием JUnit 5, Selenium WebDriver и WebDriverManager.
import org . junit . jupiter . api . AfterEach ;
import org . junit . jupiter . api . BeforeAll ;
import org . junit . jupiter . api . BeforeEach ;
import org . junit . jupiter . api . Test ;
import org . openqa . selenium . WebDriver ;
import org . openqa . selenium . chrome . ChromeDriver ;
import io . github . bonigarcia . wdm . WebDriverManager ;
class ChromeTest {
WebDriver driver ;
@ BeforeAll
static void setupAll () {
WebDriverManager . chromedriver (). setup ();
}
@ BeforeEach
void setup () {
driver = new ChromeDriver ();
}
@ AfterEach
void teardown () {
driver . quit ();
}
@ Test
void test () {
// Your test logic here
}
}
Альтернативно вы можете использовать метод create()
для автоматического управления драйвером и создания экземпляра объекта WebDriver
в одной строке. Например, следующим образом:
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 . chrome . ChromeDriver ;
import io . github . bonigarcia . wdm . WebDriverManager ;
class ChromeCreateTest {
WebDriver driver ;
@ BeforeEach
void setup () {
driver = WebDriverManager . chromedriver (). create ();
}
@ AfterEach
void teardown () {
driver . quit ();
}
@ Test
void test () {
// Your test logic here
}
}
Дополнительную информацию об алгоритме разрешения драйверов, реализованном WebDriverManager, и возможностях настройки см. в документации.
Еще одна важная новая функция, доступная в WebDriverManager 5, — это возможность создавать браузеры в контейнерах Docker «из коробки». Для использования этой функции необходимо установить Docker Engine на машину, на которой выполняются тесты. Чтобы использовать его, нам нужно вызвать метод browserInDocker()
вместе с create()
данного менеджера. Таким образом, WebDriverManager извлекает изображение из Docker Hub, запускает контейнер и создает экземпляр объекта WebDriver для его использования. В следующем тесте показан простой пример использования Chrome в Docker. Этот пример также включает запись сеанса браузера и удаленный доступ с помощью noVNC:
import org . junit . jupiter . api . AfterEach ;
import org . junit . jupiter . api . BeforeEach ;
import org . junit . jupiter . api . Test ;
import org . openqa . selenium . WebDriver ;
import io . github . bonigarcia . wdm . WebDriverManager ;
class DockerChromeVncTest {
WebDriver driver ;
WebDriverManager wdm = WebDriverManager . chromedriver (). browserInDocker ()
. enableVnc (). enableRecording ();
@ BeforeEach
void setup () {
driver = wdm . create ();
}
@ AfterEach
void teardown () {
wdm . quit ();
}
@ Test
void test () {
// Your test logic here
}
}
WebDriverManager является частью OpenCollective, онлайн-платформы финансирования для открытых и прозрачных сообществ. Вы можете поддержать проект, внося вклад в качестве спонсора (т. е. личного пожертвования или регулярного взноса) или спонсора (т. е. регулярного вклада компании).
Кроме того, вы можете отметить мою работу, купив мне кофе:
WebDriverManager (авторское право © 2015–2024) — это проект, созданный и поддерживаемый Бони Гарсиа и лицензированный в соответствии с условиями лицензии Apache 2.0.