Trong ba năm qua, nhóm Tự động hoá trình duyệt của Chrome đã hợp tác với các nhà cung cấp công cụ và trình duyệt lớn khác như BrowserStack để tạo WebDriver BiDi – một giao thức tự động hoá trình duyệt mới cho phép quy trình làm việc tự động hoá hai chiều trên các trình duyệt. Trước đây, bạn chỉ có thể thực hiện các quy trình công việc này bằng Giao thức Chrome DevTools độc quyền trong các trình duyệt dựa trên Chromium.
Hôm nay đánh dấu một cột mốc quan trọng của nỗ lực chung này khi WebDriver BiDi cuối cùng đã sẵn sàng cho nhà phát triển, bắt đầu từ BrowserStack.
Selenium và BrowserStack
Gần đây, BrowserStack đã trở thành Đối tác phát triển chính thức của Selenium, một khung tự động hoá trình duyệt nguồn mở, trưởng thành, cũng đóng góp vào WebDriver BiDi. Quan hệ đối tác này là minh chứng cho việc BrowserStack tiếp tục đầu tư vào một hệ sinh thái kiểm thử đang phát triển, trong đó BrowserStack cũng sử dụng một số nhân viên bảo trì cốt lõi của Selenium.
Một phần của dự án Selenium là Selenium Grid, cho phép bạn chạy song song các chương trình kiểm thử trên nhiều thiết bị. Tuy nhiên, việc tự thiết lập Lưới, mua và duy trì hàng chục thiết bị khác nhau cũng như duy trì hoạt động của các thiết bị đó có thể là một thách thức hoặc thậm chí là không thể đối với một số người.
Các giải pháp Selenium Grid được lưu trữ như BrowserStack có thể giúp bạn dễ dàng chạy các bài kiểm thử trên nhiều nền tảng và thiết bị mà không cần tự quản lý các nền tảng và thiết bị đó.
WebDriver BiDi trên lưới Selenium
Selenium dựa trên tiêu chuẩn WebDriver (lưu ý là thiếu BiDi) nhưng đã hỗ trợ thử nghiệm cho WebDriver BiDi trong một thời gian. Kể từ hôm nay, bạn có thể sử dụng các lệnh WebDriver BiDi trong phiên bản chính thức trên Selenium Grid do BrowserStack lưu trữ!
Cuối cùng, điều này cho phép các tính năng như chặn yêu cầu, mô phỏng nâng cao và xử lý các sự kiện trình duyệt theo thời gian thực – không chỉ trong Chrome mà còn trong mọi trình duyệt hỗ trợ WebDriver BiDi.
Ví dụ sau đây cho thấy cách theo dõi các sự kiện nhật ký bằng cách sử dụng WebDriver BiDi trên BrowserStack. Sau đó, bạn cũng có thể kiểm tra nhật ký đã ghi trên automate.browserstack.com:
const webdriver = require('selenium-webdriver');
// Insert credentials from https://www.browserstack.com/accounts/profile/details
const USERNAME = '<YOUR_USERNAME>';
const ACCESS_KEY = '<YOUR_ACCESS_KEY>';
(async () => {
const driver = await (new webdriver.Builder()
.withCapabilities({
browserName: 'chrome',
'bstack:options': {
seleniumVersion: '4.22.0',
seleniumBidi: true, // Enable WebDriver BiDi.
},
})
.usingServer(
`https://${USERNAME}:${ACCESS_KEY}@hub-cloud.browserstack.com/wd/hub`
)
.build());
// Add a listener for log events.
await driver.script().addConsoleMessageHandler((logEntry) => {
console.log(logEntry.text);
});
await driver.get(
'https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html'
);
// Trigger a console log on the demo page.
await driver.findElement({ id: 'consoleLog' }).click();
await driver.quit();
// Inspect logs on automate.browserstack.com!
})();
BrowserStack chỉ là bước khởi đầu
Nhóm Tự động hoá trình duyệt Chrome xin chúc mừng đội ngũ tại BrowserStack đã ra mắt tính năng hỗ trợ WebDriver BiDi ngay hôm nay! Chúng tôi cũng rất mong được thấy WebDriver BiDi sẽ được hỗ trợ trên BrowserStack, các công cụ khác như Selenium, cũng như các trình duyệt lớn khác trong những tuần tới.
Nếu thông báo này khiến bạn hào hứng với hoạt động kiểm thử nhưng bạn chưa bắt đầu hành trình kiểm thử, hãy nhớ tham khảo khoá học Tìm hiểu hoạt động kiểm thử trên web.dev.