Change Browser version in Selenium 4

Anh Tester chia sẻ đến bạn cách thay đổi phiên bản trình duyệt khi chạy testing để khắc phục lỗi không hỗ trợ CDP cho Chrome và Edge browser với Selenium

CDP là gì?

CDP là viết tắt của cụm từ Chrome DevTools Protocol (CDP) là một bộ API cho phép các nhà phát triển giao tiếp với các trình duyệt dựa trên lõi Chromium, bao gồm cả Google Chrome. (ngoài ra còn Edge, Opera,...)


Selenium hỗ trợ CDP

Hiện tại An đang dùng phiên bản Selenium 4.11.0 thì nó chỉ mới hỗ trợ cho CDP tới 115, tương ứng hỗ trợ cho ChromeEdge browser version 115.x.xxxx, mà hiện tại thì nó đã là 116.x.xxxx tại thời điểm bài viết này (30/08/2023) nên là dẫn đến các bạn sẽ thấy WARNING khi chạy test automation với Selenium như hình bên dưới.

Change Browser version in Selenium 4 | Anh Tester

thg 8 30, 2023 5:43:47 SA org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
WARNING: Unable to find an exact match for CDP version 116, so returning the closest version found: 115

===============================================
Default Suite
Total tests run: 1, Passes: 1, Failures: 0, Skips: 0
===============================================​


Với tốc độ cập nhật của trình duyệt lõi Chromium (Chrome và Edge) thì có thể câu chuyện này xảy ra thường xuyên vì Selenium cập nhật theo không kịp, hầu như trể hơn một thời gian mới có bản cập nhật kịp thời.

Mà bản chất nó chỉ là WARNING thôi nên chúng ta vẫn có thể dùng bình thường, tuy nhiên nhiều bạn lại không thích nó xuất hiện gây ngứa mắt muốn nó biến mất 😆

Haha rồi rồi ok An giúp bạn xử lý nó sau đây 😂

Để xử lý câu chuyện trên có 2 cách là:

  1. Đợi Selenium ra bản cập nhật hỗ trợ CDP mới nhất
  2. Thay đổi Browser version khi chạy test automation

À mà cách 1 chắc không đợi được rồi, thấy các bạn tánh hơi nóng =))

Rồi vậy thì dùng cách 2 thử nào, để thay đổi phiên bản trình duyệt để chạy test automation với Selenium thì hiện tại An chỉ các bạn trên phiên bản Selenium 4 nhé.

Đầu tiên chúng ta sẽ thêm tuỳ chọn ChromeOptions hoặc EdgeOptions. An sẽ demo dùng Chrome nên tạo ChromeOptions hen.

//Đang dùng Selenium 4.11.0 (chỉ support đến CDP 115)

ChromeOptions options = new ChromeOptions();
options.setBrowserVersion("115");

driver = new ChromeDriver(options);


Sau khi khởi tạo ChromeOptions thì các bạn gọi hàm setBrowserVersion và đặt giá trị là 115, nó sẽ hiểu là chạy với phiên bản 115.x.xxxx mới nhất để nó phù hợp với Selenium hiện tại chỉ support CDP 115. Hoặc các bạn có thể chỉ định rõ ràng phiên bản luôn, ví dụ 115.0.5790.170 kiểu vậy.

Selenium sẽ tự động tải trình duyệt phiên bản 115 về và đặt trong thư mục máy tính của bạn và tìm đến file Chrome.exe để khởi chạy nó.

Change Browser version in Selenium 4 | Anh Tester

Và bây giờ chạy lại thử lại nào

Change Browser version in Selenium 4 | Anh Tester

Nó đã hết WARNING ngứa mắt rồi =))

Tuy nhiên thì cái trình duyệt nó chạy là trình duyệt dành cho testing do Google thiết kế cho Test Automation. Nó không phải cái lõi của version hiện tại. Yeah nhưng vẫn ok không vấn đề gì.

Change Browser version in Selenium 4 | Anh Tester

Dị là được rồi đó, tính xem full code hay gì 🤣

https://github.com/anhtester/NewFeatureSelenium4/blob/main/src/test/java/com/anhtester/SetBrowserVersion.java

  • Anh Tester

    Đường dẫu khó chân vẫn cần bước đi
    Đời dẫu khổ tâm vẫn cần nghĩ thấu