Automatisierung mit WebDriver BiDi jetzt auf BrowserStack verfügbar

Matthias Rohmer
Matthias Rohmer

In den letzten drei Jahren hat das Browser-Automatisierungsteam von Chrome mit anderen großen Browser- und Toolanbietern wie BrowserStack zusammengearbeitet, um WebDriver BiDi zu entwickeln – ein neues Browser-Automatisierungsprotokoll, das bidirektionale Automatisierungsabläufe über alle Browser hinweg ermöglicht. Bisher waren diese Workflows nur mit dem proprietären Chrome DevTools-Protokoll in Chromium-basierten Browsern möglich.

Heute erreichen wir einen wichtigen Meilenstein bei diesem gemeinsamen Projekt: WebDriver BiDi ist ab sofort für Entwickler in der Produktionsumgebung verfügbar, beginnend mit BrowserStack.

Selenium und BrowserStack

Seit Kurzem ist BrowserStack offizieller Entwicklungspartner von Selenium, einem ausgereiften Open-Source-Framework zur Browserautomatisierung, das auch zur Entwicklung von WebDriver BiDi beigetragen hat. Diese Partnerschaft ist ein Beleg für die kontinuierlichen Investitionen von BrowserStack in ein florierendes Testsystem. BrowserStack beschäftigt auch mehrere Hauptentwickler von Selenium.

Teil des Selenium-Projekts ist Selenium Grid, mit dem Sie Tests auf mehreren Geräten parallel ausführen können. Das Einrichten eines Grids, das Anschaffen und die Wartung von Dutzenden verschiedener Geräte sowie die Verfügbarkeit dieser Geräte kann für manche jedoch eine Herausforderung oder sogar unmöglich sein.

Gehostete Selenium Grid-Lösungen wie BrowserStack können das Ausführen Ihrer Tests auf vielen verschiedenen Plattformen und Geräten erleichtern, ohne dass Sie sie selbst verwalten müssen.

WebDriver BiDi auf Seleniumraster

Selenium basiert auf dem WebDriver-Standard (beachten Sie das fehlende BiDi), bietet aber seit einiger Zeit experimentelle Unterstützung für WebDriver BiDi. Ab heute können Sie WebDriver-BiDi-Befehle in der Produktion auf dem von BrowserStack gehosteten Selenium Grid verwenden.

So sind jetzt Funktionen wie die Anfrageabfangung, die erweiterte Emulation und die Verarbeitung von Browserereignissen in Echtzeit möglich – und zwar nicht nur in Chrome, sondern in jedem Browser, der WebDriver BiDi unterstützt.

Im folgenden Beispiel wird gezeigt, wie Sie mit WebDriver BiDi auf BrowserStack auf Protokollereignisse warten. Die erfassten Logs können dann auch unter automatisierte.browserstack.com geprüft werden:

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 ist erst der Anfang

Das Chrome Browser Automation-Team gratuliert dem BrowserStack-Team zur Einführung des WebDriver-BiDi-Supports. Wir freuen uns auch, dass die Unterstützung für WebDriver BiDi in den kommenden Wochen auf BrowserStack, andere Tools wie Selenium und andere gängige Browser ausgeweitet wird.

Wenn Sie durch diese Ankündigung Lust auf Tests bekommen haben, aber noch nicht damit begonnen haben, sehen Sie sich unseren Kurs „Tests lernen“ auf web.dev an.