WebDriverManager 是一個開源Java 庫,它以完全自動化的方式對Selenium WebDriver 所需的驅動程式(例如chromedriver、geckodriver、msedgedriver 等)進行管理(即下載、設定和維護)。此外,WebDriverManager 還提供其他相關功能,例如發現本機系統中安裝的瀏覽器、建置 WebDriver 物件(例如ChromeDriver
、 FirefoxDriver
、 EdgeDriver
等)以及在 Docker 容器中無縫執行瀏覽器的能力。
從版本 5 開始,WebDriverManager 的文檔已移至此處。該網站包含 WebDriverManager 的所有功能、範例、配置和進階功能。
WebDriverManager 的主要用途是驅動程式管理的自動化。要使用此功能,您需要在 WebDriverManager API 中選擇給定的管理器(例如,Chrome 的chromedriver()
)並呼叫方法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 引擎。要使用它,我們需要結合給定管理員的create()
來呼叫browserInDocker()
方法。這樣,WebDriverManager 從 Docker Hub 中提取映像,啟動容器,並實例化 WebDriver 物件以使用它。以下測試展示了在 Docker 中使用 Chrome 的簡單範例。此範例還支援使用 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 的一部分,OpenCollective 是一個開放式透明社群的線上資助平台。您可以透過作為支持者(即個人捐贈或經常性捐款)或作為贊助商(即公司的經常性捐款)進行捐款來支持該計畫。
或者,您可以透過請我一杯咖啡來認可我的工作:
WebDriverManager(版權所有 © 2015-2024)是由 Boni Garcia 創建和維護的項目,並根據 Apache 2.0 許可證條款獲得許可。