В течение последних трех лет команда Chrome по автоматизации браузера сотрудничала с другими крупными поставщиками браузеров и инструментов, такими как BrowserStack, для создания WebDriver BiDi — нового протокола автоматизации браузера, который обеспечивает двунаправленную автоматизацию рабочих процессов в браузерах. Ранее эти рабочие процессы были возможны только с помощью собственного протокола Chrome DevTools в браузерах на базе Chromium.
Сегодняшний день знаменует собой важную веху в этих общих усилиях: WebDriver BiDi наконец-то становится готовым к использованию для разработчиков, начиная с BrowserStack.
Селен и браузерный стек
Недавно BrowserStack стал официальным партнером по разработке Selenium , зрелой среды автоматизации браузера с открытым исходным кодом, которая также внесла свой вклад в WebDriver BiDi. Это партнерство является свидетельством постоянных инвестиций BrowserStack в процветающую экосистему тестирования, при этом BrowserStack также нанимает нескольких основных разработчиков Selenium.
Частью проекта Selenium является Selenium Grid, который позволяет запускать тесты на нескольких устройствах параллельно. Но настроить Grid самостоятельно, приобрести и обслуживать десятки различных устройств, а также поддерживать их доступность для некоторых может быть сложной или даже невозможной задачей.
Решения Hosted Selenium Grid, такие как BrowserStack, могут упростить запуск тестов на различных платформах и устройствах, не управляя ими самостоятельно.
WebDriver BiDi на Selenium Grid
Selenium основан на стандарте WebDriver (обратите внимание на отсутствие BiDi), но уже некоторое время имеет экспериментальную поддержку WebDriver BiDi. Начиная с сегодняшнего дня, вы можете использовать команды WebDriver BiDi в рабочей среде Selenium Grid, размещенной на BrowserStack!
Наконец, это позволяет использовать такие функции, как перехват запросов, расширенную эмуляцию и обработку событий браузера в режиме реального времени — и не только в Chrome, но и в каждом браузере, поддерживающем WebDriver BiDi.
В следующем примере показано, как прослушивать события журнала с помощью WebDriver BiDi в BrowserStack. Перехваченные журналы также доступны для проверки на 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 — это только начало
Команда автоматизации браузера Chrome поздравляет команду BrowserStack с запуском поддержки WebDriver BiDi сегодня! Мы также с нетерпением ожидаем расширения поддержки WebDriver BiDi в BrowserStack, других инструментах, таких как Selenium, а также в других основных браузерах в ближайшие недели.
А если это объявление вдохновило вас на тестирование, но вы еще не начали свой путь тестирования, обязательно ознакомьтесь с нашим курсом «Изучение тестирования» на сайте web.dev .