Selenium WebDriver vẫn là framework testing dùng cho giao diện một cách phổ biến và rộng rãi nhất. Hiện tai seleniumđã ra mắt phiên bản 4, được đổi mới và trang bị nhiều tính năng mới. Dù vậy Selenium WebDriver vẫn cần được download trình điều khiển trình duyệt từ bên thứ ba (hoặc là webdrivers) và phải cấu hình khác nhau trong framework chỉ để sử dụng Selenium WebDriver.
Và quan trọng là bạn cần phải nhớ đẻ cập nhật WebDrivers mỗi khi trình duyệt được cập nhật version mới. Đôi khi việc cập nhật driver không đúng version với browser trên máy cũng như việc để đường dẫn đến driver sai sẽ dẫn đến việc chạy test bị fail.
Việc quản lý các drivers trong framework một cách thủ công cho việc kiểm thử tự động có vẻ hơi phiền phức và tốn công phải không?
Có một giải pháp để tuyệt vời để giải quyết vấn đề này của Boni García – đó là WebDriverManager – chúng ta sẽ cùng tìm hiểu về nó trong bài này nhé.
Trước khi bắt đầu bạn cần biết
- Kiến trúc Selenium WebDriver và cách sử dụng webDriver của bên thứ ba
- Cách tạo maven project
WebDriverManager là gì?
WebDriverManager là một thư viện Java mã nguồn mở được thực hiện một cách tự động bốn bước: tìm, tải xuống, thiết lập và bảo trì cho các trình điều khiển cần thiết khi dùng Selenium trong việc kiển thử.

WebDriverManager hỗ trợ các trình duyệt
WebDriverManager cung cấp trình quản lý cho các trình duyệt Chrome, Firefox, Edge, Opera, Chromium và Internet Explorer. Việc sử dụng cơ bản của các trình quản lý này là như sau:
WebDriverManager.chromedriver().setup(); WebDriverManager.firefoxdriver().setup(); WebDriverManager.edgedriver().setup(); WebDriverManager.operadriver().setup(); WebDriverManager.chromiumdriver().setup() WebDriverManager.iedriver().setup();
Lợi ích của WebDriverManager trong Selenium
- WebDriverManager tự động hóa việc quản lý các WebDriver binary, do đó không cần cài đặt một cách thủ công nữa.
- WebDriverManager tự kiểm tra version của trình duyệt được cài đặt trên máy của bạn, tự tìm và tải xuống các driver binary tương thích vào bộ nhớ cache cục bộ (~/.cache/selenium theo mặc định) nếu chưa có. Nếu không tìm thấy driver binary tương ứng, nó sử dụng driver có version mới nhất
- WebDriverManager cung cấp thử nghiệm giữa các trình duyệt khác nhau mà bạn không cần cài đặt và duy trì các driver binary của các trình duyệt khác nhau.
- WebDriverManager có thể các trình duyệt (browsers) trong Docker containers.
Cách sử dụng WebDriverManager trong Selenium WebDriver
Để hiểu hơn Đoạn code sau được viết để suSelenium WebDriver
Cài đặt WebDriverManager
Việc cài đặt WebDriverManager trong Selenium rất đơn giản. Nếu bạn đang sử dụng một Maven project, thì bạn cần truy cập mvnrepository và tìm WebDriverManager dependence và thêm vào file pom.xml
Lưu ý: Đừng quên để scope là test nhé, vì WebDriverManager trong Selenium thường được sử dụng trong phần test của dự án.
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>SingletonDesignPattern_Selenium</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>18</maven.compiler.source> <maven.compiler.target>18</maven.compiler.target> </properties> <dependencies> <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency> <!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager --> <dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>3.6.0</version> </dependency> </dependencies> </project>
Sử dụng WebDriverManager trong Selenium WebDriver
Với cách thông thường của selenium webdriver, muốn load trình duyệt (ví dụ: chrome), trước tiên bạn cần download chromedriver về máy, sau đó khởi tạo driver như sau
System.setProperty("webdriver.chrome.driver", "D:\PROJECTS\chromedriver.exe"); WebDriver driver = new ChromeDriver();
Thì khi sử dụng WebDriverManager bạn sẽ thay System.setProperty(“webdriver.chrome.driver”, “D:\PROJECTS\chromedriver.exe”);
Thành WebDriverManager.chromedriver().setup();
package seleniumWebDriverExample; import io.github.bonigarcia.wdm.WebDriverManager; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public static void main(String[] args) { // Lauching Chrome browser WebDriverManager.chromedriver().setup(); WebDriver driver = new ChromeDriver(); chromeDriver.get("https://devopsify.co/"); }
Khởi tạo trình duyệt với version cụ thể
Khi sử dụng WebDriverManager, nó sẽ mặc định tải xuống phiên bản mới nhất của driver binary theo trình duyệt. Nếu muốn sử dụng một phiên bản trình duyệt cụ thể, bạn có thể thêm như sau
Ví dụ: bạn muốn chạy chromeDriver có Driver version “107.0.5304.62”, thì sẽ viết:
WebDriverManager.chromedriver().version("107.0.5304.62").setup();
Kết quả chạy bạn sẽ thấy ChromeDriver 107.0.5304.62 được bật như hình bên dưới.
