
Trong quá trình kiểm thử phần mềm, có nhiều công cụ hỗ trợ Tester, và Selenium Webdriver là một trong những công cụ nổi trội nhất. Vậy Selenium Webdriver là gì? Làm thế nào nó hoạt động? Ưu điểm và nhược điểm của nó như thế nào?
Selenium Webdriver: Khái Niệm
Selenium Webdriver, còn được gọi là WebDriver, là một framework tự động hóa web cho phép thực hiện kiểm thử trên nhiều trình duyệt như Firefox, Chrome, Internet Explorer,... Nó là một phần không thể thiếu trong bộ công cụ tự động hóa kiểm thử Selenium.
Selenium Webdriver: Các Tính Năng
Đây là một bộ công cụ kiểm thử tự động nổi tiếng, mã nguồn mở, hỗ trợ nhiều ngôn ngữ lập trình như Java, .Net, PHP, Python, Perl, Ruby,... WebDriver cung cấp các công cụ hỗ trợ để viết mã kiểm thử. Bạn có thể sử dụng các điều kiện như if-then-else, switch-case, vòng lặp do-while,...
- Sử dụng hoàn toàn miễn phí
- WebDriver có cấu trúc đơn giản: điều khiển trình duyệt từ hệ điều hành và chỉ cần IDE và trình duyệt.
- Đa ngôn ngữ lập trình cho việc viết kịch bản kiểm thử. Bạn có thể sử dụng if-else và vòng lặp để làm cho kịch bản chính xác hơn.
- Về tốc độ, WebDriver là công cụ nhanh nhất trong bộ Selenium, vì nó tương tác trực tiếp từ hệ điều hành đến trình duyệt.
Ưu và nhược điểm của Selenium WebDriver
- Là phần mềm mã nguồn mở, WebDriver là công cụ mặc định của các Tester, giúp tiết kiệm chi phí cho toàn bộ quá trình Test.
- WebDriver tương thích với hầu hết các trình duyệt web phổ biến: Firefox, Chrome, Internet Explorer,... và có thể chạy trên Windows, Mac hoặc Linux.
- Hỗ trợ nhiều ngôn ngữ lập trình như Python, C+, C#, Ruby,... Bạn không cần phải học thêm ngôn ngữ mới để sử dụng WebDriver, mà có thể viết mã script hiệu quả bằng ngôn ngữ mà bạn biết.
- Giao diện thân thiện nhất trong các thành phần của Selenium, với nhiều tài liệu hữu ích và các câu lệnh dễ nhớ, giúp bạn thực hiện kiểm thử một cách nhanh chóng và hiệu quả.
- Được cộng đồng Selenium Webdriver trên toàn thế giới hỗ trợ mạnh mẽ, giúp bạn giải quyết mọi vấn đề phát sinh trong quá trình kiểm thử.
- WebDriver hỗ trợ tự động hóa trình duyệt web, với các trình điều khiển riêng như ChromeDriver cho Chrome, FirefoxDriver cho Firefox,... giúp tăng tốc độ thực thi so với các công cụ khác trong Selenium.
- Khắc phục các hạn chế của Selenium v1 như tải lên, tải xuống, cửa sổ pop-up và hộp thoại.
- Có thể thực hiện thử nghiệm trên nhiều hệ điều hành: Windows, Mac, Linux, Android, iOS.
Ngoài những ưu điểm vượt trội trên, bộ công cụ này cũng có nhược điểm sau:
- Selenium WebDriver chỉ hoạt động trên nền tảng Website, không thể mở rộng lên nền tảng ứng dụng Windows. Điều này gây khó khăn khi kiểm tra tốc độ kết nối với ứng dụng Windows.
- Với xu hướng tự động hóa, bạn không cần kiến thức mã lập trình cao để làm công việc này. Nhưng Selenium WebDriver lại đòi hỏi bạn phải có kiến thức cơ bản về mã lập trình và sử dụng công cụ kiểm thử tự động.
- WebDriver khó bảo trì và mở rộng, vì chỉ sử dụng một mã định danh duy nhất trong suốt quá trình kiểm thử. Điều này không phù hợp với các doanh nghiệp lớn.
- Không có sự hỗ trợ cho các lỗi kỹ thuật từ hệ thống nếu sử dụng WebDriver, nhưng bạn có thể nhận sự giúp đỡ từ cộng đồng người dùng trên toàn thế giới.
- WebDriver không tích hợp chức năng tạo báo cáo tự động, làm cho việc khắc phục sự cố và lỗi mất nhiều thời gian hơn. Bạn cần phải sử dụng công cụ bên thứ ba như TestNG, JUnit hoặc Allure để tạo báo cáo.
Chúng ta sẽ hướng dẫn cách cài đặt Selenium WebDriver cho Windows, sử dụng ngôn ngữ lập trình Java và IDE Eclipse.
Bước 1: Tải JDK for Windows x64 Installer từ trang web https://www.oracle.com/java/technologies/downloads/
Bước 2: Đồng ý với thỏa thuận và tải về
Bước 3: Sau khi tải xuống, nhấp đúp vào tệp để cài đặt Java vào hệ thống của bạn
Thiết lập môi trường
Bước 1: Click phải vào biểu tượng My Computer, chọn Properties. Trong cửa sổ hiện ra, chọn Advanced system settings
Bước 2: Chọn Environment Variables
Bước 3: Dưới phần Biến hệ thống, nhấp đúp vào Path
Bước 4 : Thêm đường dẫn đầy đủ của thư mục cài đặt Java theo vị trí hệ thống của bạn và nhấp vào OK.
Quá trình thiết lập đã hoàn tất. Mở Command Prompt và nhập java -version để kiểm tra phiên bản java đã cài đặt trong hệ thống của bạn
Bước tiếp theo: Cài đặt Eclipse
Tải xuống Eclipse IDE for Java Developers tại https://www.eclipse.org/downloads/packages/ và tiến hành cài đặt. Bạn đã hoàn thành điều kiện thứ 2
Bước 1: Tải xuống Selenium Client & WebDriver Language Bindings từ trang web Selenium. Bạn có thể tải xuống các thư viện máy khách tương ứng với tùy chọn ngôn ngữ của mình. Trong bài viết này chúng ta sẽ làm việc với Java Client Bindings.
Bước 2: Tiến hành giải nén, bạn sẽ thấy có các tệp jar, thư mục libs và tệp CHANGELOG
Bước 3: Tiếp theo cần cần tải xuống driver trình duyệt sẽ giúp bạn khởi tạo trình duyệt. Dưới đây là một số trình duyệt chính
- Firefox: https://github.com/mozilla/geckodriver/releases
- Chrome: https://chromedriver.storage.googleapis.com/index.html?path=94.0.4606.41/
Bước 4: Tiếp theo bạn chỉ cần giải nén driver đã tải xuống.Bây giờ chúng ta đã hoàn tất việc thiết lập các điều kiện cần.
Bước 1 : Khởi chạy Eclipse
Bước 2 : Chọn không gian làm việc của bạn theo cách thủ công hoặc để vị trí mặc định và nhấp vào OK.
Bước 3: Tạo một dự án mới bằng cách: File > New > Java Project. Đặt tên cho project và nhấn Finish
Bước 4: Bây giờ dự án của bạn đã được tạo, nhấp chuột phải vào dự án và chọn New > Package.
Bước 5: Nhập tên gói trong hộp thoại Java Package mới và nhấp Finish
Bước 6: Bạn cần tạo một class mới trong package ngay bây giờ. Nhấp chuột phải vào tên package, chọn New > Class
Bước 7: Trong hộp thoại Java class mới, hãy nhập tên cho class của bạn, chọn phương thức stub viz, public static void main(String[] args) và nhấp Finish
Bước 8: Bây giờ chúng ta đã tạo một phác thảo cho dự án kiểm thử, tiếp theo cần nhập các thư viện đã cài đặt ở phần trên. Nhấp chuột phải vào dự án > Build Path > Configure Build Path

Bước 9: Nhấp vào Add External Jar và chọn đến vị trí các tệp Jar đã giải nén ở phần trên
Bước 10: Chọn 2 tệp selenium-api-4.8.3.jar và selenium-api-4.8.3-sources.jar và các tệp trong mục libs. Sau khi thêm vào, bạn sẽ thấy các file jar bên dưới Libraries
Bước 11: Click vào Apply rồi OK. Giờ đây, bạn có thể thấy các Referenced Libraries
Như vậy chúng ta đã định cấu hình Selenium WebDriver trong Eclipse và bắt đầu để viết tập lệnh kiểm thử đầu tiên

- Áp dụng khi sử dụng một ngôn ngữ lập trình nhất định trong việc thiết kế Test case.
- Kiểm tra các ứng dụng có nhiều chức năng dựa trên AJAX.
- Tiến hành các kiểm thử trên trình duyệt HtmlUnit.
- Tạo kết quả kiểm thử tùy chỉnh.
- Nếu muốn Webdriver mô phỏng các hành động như: click chuột hoặc điền giá trị, trước tiên nó cần xác định vị trí của phần tử trên trang web mà nó sẽ tương tác. Dựa vào css Selector hoặc Xpath để xác định.
- Khi đã xác định vị trí, bạn cần xác định hành động đối với phần tử đó bằng các API có sẵn trong gói thư viện của Webdriver.
- Sau khi hoàn thành trình tự hành động, bạn cần kiểm tra xem trang web đã thực hiện đúng hay không?
- Cụ thể, với chức năng Đăng nhập, bạn cần xác định vị trí của các phần tử bao gồm: Tên đăng nhập, Mật khẩu, Nút Gửi. Sau đó, truyền thông tin này cho Webdriver biết vị trí của từng phần tử.
- Hành động nhập dữ liệu được thực hiện với Tên đăng nhập và Mật khẩu. Đối với Nút Gửi, sử dụng phương thức mô phỏng Click chuột.
- Sau đó, viết lệnh kiểm tra để xác định dữ liệu nhập liệu có thành công hay không. Bằng cách kiểm tra xem nó có chuyển hướng sang Trang khác hay không? Trong thao tác đơn giản, bạn có thể kiểm tra Đăng nhập đúng hay sai. Tuy nhiên, trong tự động hóa, nó sẽ được kiểm tra tự động và đánh giá dựa trên các tiêu chí Pass/Fail được chọn.
- Khi script đã được viết, bạn chạy để kiểm tra Testcase có đúng hoặc không. Trong quá trình chạy, Selenium WebDriver tương tác trực tiếp với trình duyệt thông qua driver của nó. Các hành động trong script sẽ được thực thi.
- Mỗi hành động trong script tạo ra một HTTP request. Request này được gửi đến driver của trình duyệt. Trình duyệt driver có một HTTP server tương ứng để nhận request.
- Sau khi nhận request, HTTP server xác định các bước cần thiết để thực thi hành động và phản hồi lại. Thực hiện các bước như mở trang web, điền thông tin vào ô nhập,… Cuối cùng, HTTP server trả lại trạng thái thực hiện hành động cho client đang chạy script.

- Để truy cập vào một trang web, sử dụng lệnh: driver.get(“URL”)
- Để nhập văn bản vào ô input, sử dụng lệnh: element.sendKeys(“inputtext”)
- Xóa nội dung trong ô input bằng lệnh: element.clear()
- Bỏ chọn tất cả các tùy chọn trong Select đầu tiên trên trang bằng lệnh: select.deselect All()
- Chuyển từ frame hiện tại sang frame có tên hoặc id là “frameName” bằng lệnh: driver.switchTo().frame(“frameName”)
- Di chuyển con trỏ chuột từ cửa sổ này sang cửa sổ khác bằng lệnh: driver.switchTo().window(“windowName”)
- Đóng trình duyệt hiện tại và các liên kết đến driver bằng lệnh: driver.close()
- Xử lý alert sử dụng lệnh: driver.switchTo().alert()
- Chọn tùy chọn với văn bản được hiển thị bởi người dùng sử dụng lệnh: select.selectByVisibleText(“some text”)
- Thoát driver và đóng tất cả các cửa sổ liên quan đến driver đó, nhập lệnh: driver.quit()
- Tải lại trang hiện tại: driver.refresh()
- Quay lại trang trước đó bằng lệnh: driver.navigate().back()
- Để chuyển hướng đến một URL, sử dụng lệnh: driver.navigate().to(“URL”)
- Nếu muốn chuyển hướng đến trang tiếp theo, sử dụng lệnh: driver.navigate().forward()
Ngoài kiến thức cơ bản, bạn cần chú ý đến một số điều sau khi học Webdriver:
- Máy tính dùng để học cần có hiệu suất tốt và ổn định, đã cài đặt ngôn ngữ Java 8 và chuẩn bị thêm một IDE để soạn thảo mã.
- Cần hiểu rõ về các kiến thức cơ bản của Java.
- Cài đặt các tiện ích mở rộng trên trình duyệt Google Chrome trên máy tính.
- Tải và lưu các tệp driver trên trình duyệt thông dụng như: Firefoxdrive, chromedrive,…

Để nâng cao kiến thức và kỹ năng khi sử dụng Selenium, bạn có thể tham khảo và học tại một số trang web sau đây:
Đây là trang web hàng đầu chuyên cung cấp tài liệu về WebDriver cho người mới bắt đầu. Tại đây, bạn có thể tìm hiểu chi tiết về cách sử dụng công cụ kiểm thử tự động này. Với giao diện thân thiện và các tính năng nổi bật, bạn sẽ dễ dàng tiếp cận kiến thức cần thiết về WebDriver.

Ngoài trang web kia, bạn cũng có thể tìm hiểu và học từ trang này. Để hiểu rõ hơn về Selenium WebDriver. Với nhiều bài học và ví dụ thực tế áp dụng trên nhiều ngôn ngữ. Đây là một nguồn học hữu ích cho cả người mới và chuyên gia.
Trang này cung cấp nhiều kiến thức hữu ích về Selenium WebDriver từ cơ bản đến phức tạp. Bạn có thể tham khảo để học thông qua các hướng dẫn chi tiết và dễ hiểu.
Từ những thông tin trên, bạn đã nắm rõ hơn về Selenium WebDriver. Đồng thời, bạn cũng có thêm kiến thức về kiểm thử phần mềm. Nếu có câu hỏi, hãy để lại bình luận dưới bài viết!
Khám phá thêm: Các công cụ kiểm thử tự động phổ biến hiện nay
Selenium IDE và Selenium WebDriver là hai công cụ khác nhau trong dự án Selenium, với mục tiêu và tính năng riêng. Dưới đây là so sánh giữa chúngục Tiêu Chính:– Selenium IDE: Dành cho người không có kỹ năng lập trình, cung cấp giao diện đồ họa để ghi và chạy kiểm thử.– Selenium WebDriver: Thư viện lập trình hỗ trợ nhiều ngôn ngữ để điều khiển trình duyệt web bằng mã nguồn.Ngôn Ngữ Lập Trình:– Selenium IDE: Hỗ trợ ít chức năng và không yêu cầu kỹ năng lập trình cao.– Selenium WebDriver: Cho phép sử dụng nhiều ngôn ngữ để xây dựng kịch bản kiểm thử phức tạp.Độ Linh Hoạt và Mạnh Mẽ:– Selenium IDE: Dễ sử dụng, nhưng hạn chế với các kịch bản phức tạp.– Selenium WebDriver: Cung cấp linh hoạt cao hơn, cho phép tự động hóa nhiều hơn.Khả Năng Mở Rộng:– Selenium IDE: Thích hợp cho dự án nhỏ, khó mở rộng.– Selenium WebDriver: Tích hợp vào dự án lớn, có khả năng mở rộng tốt.Hỗ Trợ Trình Duyệt:– Selenium IDE: Hỗ trợ ít trình duyệt hơn.– Selenium WebDriver: Hỗ trợ nhiều trình duyệt như Chrome, Firefox, Edge, Safari.
Kiểm Thử Tự Động: Selenium WebDriver kiểm thử tự động chức năng của ứng dụng web, đảm bảo tính đúng đắn và ổn định sau mỗi lần thay đổi mã nguồn. Đảm Bảo Chất Lượng: Selenium WebDriver đóng vai trò quan trọng trong việc đảm bảo chất lượng phần mềm trên GitHub, phát hiện lỗi sớm và giảm rủi ro tiềm ẩn.Kiểm Thử Giao Diện: Thường được sử dụng để kiểm thử giao diện người dùng trên nhiều trình duyệt và nền tảng.Kiểm Thử Tích Hợp: Có thể tích hợp vào các công cụ và hệ thống khác để thực hiện kiểm thử tự động khi có thay đổi trong mã nguồn.Kiểm Thử Đa Trình Duyệt: Hỗ trợ nhiều trình duyệt, đảm bảo ứng dụng hoạt động nhất quán trên mọi trình duyệt.Hỗ Trợ CI/CD: Tích hợp vào quy trình CI/CD để đảm bảo kiểm thử tự động trước khi triển khai.