WebDriverManager adalah pustaka Java sumber terbuka yang menjalankan pengelolaan (yaitu, pengunduhan, pengaturan, dan pemeliharaan) driver yang diperlukan oleh Selenium WebDriver (misalnya, chromedriver, geckodriver, msedgedriver, dll.) dengan cara yang sepenuhnya otomatis. Selain itu, WebDriverManager menyediakan fitur relevan lainnya, seperti kemampuan untuk menemukan browser yang terpasang di sistem lokal, membuat objek WebDriver (seperti ChromeDriver
, FirefoxDriver
, EdgeDriver
, dll.), dan menjalankan browser di container Docker dengan lancar.
Pada versi 5, dokumentasi WebDriverManager telah dipindahkan ke sini. Situs ini berisi semua fitur, contoh, konfigurasi, dan kemampuan lanjutan WebDriverManager.
Kegunaan utama WebDriverManager adalah otomatisasi manajemen driver. Untuk menggunakan fitur ini, Anda perlu memilih pengelola tertentu di API WebDriverManager (misalnya, chromedriver()
untuk Chrome) dan menjalankan metode setup()
. Contoh berikut memperlihatkan kerangka kasus pengujian menggunakan JUnit 5, Selenium WebDriver, dan 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
}
}
Alternatifnya, Anda dapat menggunakan metode create()
untuk mengelola driver secara otomatis dan membuat instance objek WebDriver
dalam satu baris. Misalnya saja sebagai berikut:
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
}
}
Untuk informasi lebih lanjut tentang algoritma resolusi driver yang diterapkan oleh WebDriverManager dan kemampuan konfigurasi, baca dokumentasinya.
Fitur baru relevan lainnya yang tersedia di WebDriverManager 5 adalah kemampuan untuk membuat browser di container Docker secara langsung. Persyaratan untuk menggunakan fitur ini adalah menginstal Docker Engine di mesin yang menjalankan pengujian. Untuk menggunakannya, kita perlu memanggil metode browserInDocker()
bersama dengan create()
dari manajer tertentu. Dengan cara ini, WebDriverManager mengambil gambar dari Docker Hub, memulai kontainer, dan membuat instance objek WebDriver untuk menggunakannya. Tes berikut menunjukkan contoh sederhana menggunakan Chrome di Docker. Contoh ini juga memungkinkan perekaman sesi browser dan akses jarak jauh menggunakan 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 adalah bagian dari OpenCollective, sebuah platform pendanaan online untuk komunitas terbuka dan transparan. Anda dapat mendukung proyek dengan berkontribusi sebagai pendukung (misalnya sumbangan pribadi atau kontribusi berulang) atau sebagai sponsor (misalnya kontribusi berulang dari perusahaan).
Alternatifnya, Anda dapat mengakui pekerjaan saya dengan membelikan saya kopi:
WebDriverManager (Hak Cipta © 2015-2024) adalah proyek yang dibuat dan dikelola oleh Boni Garcia dan dilisensikan berdasarkan ketentuan Lisensi Apache 2.0.