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,...)
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 Chrome và Edge 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.
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à:
//Đ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ó.
Và bây giờ chạy lại thử lại nào
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ì.
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