Automatisierung mit WebDriver BiDi jetzt auf BrowserStack verfügbar

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 Produktion verfügbar, beginnend mit BrowserStack.

Selenium und BrowserStack

Vor Kurzem ist BrowserStack offizieller Entwicklungspartner von Selenium geworden, einem ausgereiften Open-Source-Browser-Automatisierungs-Framework, das auch zu 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.

Selenium Grid ist Teil des Selenium-Projekts und ermöglicht es, Tests parallel auf mehreren Geräten auszuführen. Aber ein Grid selbst einzurichten, Dutzende verschiedener Geräte zu beschaffen und zu warten und sie verfügbar zu halten, kann für manche 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 Selenium Grid

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. Gefangene Protokolle sind dann auch unter automate.browserstack.com zur Prüfung verfügbar:

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.