WebDriverManager é uma biblioteca Java de código aberto que realiza o gerenciamento (ou seja, download, configuração e manutenção) dos drivers exigidos pelo Selenium WebDriver (por exemplo, chromedriver, geckodriver, msedgedriver, etc.) de forma totalmente automatizada. Além disso, WebDriverManager fornece outros recursos relevantes, como a capacidade de descobrir navegadores instalados no sistema local, construir objetos WebDriver (como ChromeDriver
, FirefoxDriver
, EdgeDriver
, etc.) e executar navegadores em contêineres Docker perfeitamente.
A partir da versão 5, a documentação do WebDriverManager foi movida para cá. Este site contém todos os recursos, exemplos, configuração e recursos avançados do WebDriverManager.
O principal uso do WebDriverManager é a automação do gerenciamento de drivers. Para usar este recurso, você precisa selecionar um determinado gerenciador na API WebDriverManager (por exemplo, chromedriver()
para Chrome) e invocar o método setup()
. O exemplo a seguir mostra o esqueleto de um caso de teste usando JUnit 5, Selenium WebDriver e 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
}
}
Alternativamente, você pode usar o método create()
para gerenciar automaticamente o driver e instanciar o objeto WebDriver
em uma única linha. Por exemplo, como segue:
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
}
}
Para obter mais informações sobre o algoritmo de resolução de driver implementado pelo WebDriverManager e recursos de configuração, leia a documentação.
Outro novo recurso relevante disponível no WebDriverManager 5 é a capacidade de criar navegadores em contêineres Docker prontos para uso. O requisito para utilizar este recurso é ter instalado um Docker Engine na máquina que executa os testes. Para utilizá-lo, precisamos invocar o método browserInDocker()
em conjunto com create()
de um determinado gerenciador. Dessa forma, o WebDriverManager extrai a imagem do Docker Hub, inicia o contêiner e instancia o objeto WebDriver para usá-lo. O teste a seguir mostra um exemplo simples usando o Chrome no Docker. Este exemplo também permite a gravação da sessão do navegador e acesso remoto usando 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 faz parte do OpenCollective, uma plataforma de financiamento online para comunidades abertas e transparentes. Você pode apoiar o projeto contribuindo como patrocinador (ou seja, uma doação pessoal ou contribuição recorrente) ou como patrocinador (ou seja, uma contribuição recorrente de uma empresa).
Alternativamente, você pode reconhecer meu trabalho comprando-me um café:
WebDriverManager (Copyright © 2015-2024) é um projeto criado e mantido por Boni Garcia e licenciado sob os termos da Licença Apache 2.0.