WebDriver BiDi による自動化が BrowserStack で利用可能に

Matthias Rohmer
Matthias Rohmer

この 3 年間、Chrome のブラウザ自動化チームは BrowserStack などの他の主要なブラウザやツール ベンダーと共同で、 ブラウザの新しい自動化プロトコルである WebDriver BiDi を作成する これにより、ブラウザをまたいだ双方向の自動化ワークフローが可能になります。これらの ワークフローは、以前は独自の Chrome DevTools でのみ可能でした。 Chromium ベースのブラウザのプロトコル。

本日、WebDriver BiDi というこの共通の取り組みの重要なマイルストーンとなる デベロッパーが最終的に本番環境に対応。 今すぐ始めましょう。

Selenium と BrowserStack

最近、BrowserStack は Selenium の公式開発パートナーになりました。 成熟したオープンソースのブラウザ自動化フレームワークであり、 WebDriver BiDi。このパートナーシップは、BrowserStack が 活発なテスト エコシステムへの投資を続けており、BrowserStack も Selenium のコア メンテナンス担当者も数人います。

Selenium プロジェクトの一部は Selenium Grid です。 これにより、複数のデバイスで並行してテストを実行できます。しかし、グリッドを 自力で立ち上げ、数十種類のデバイスを入手して維持する必要がありました。 利用可能な状態に維持することは、人によっては困難または不可能な場合もあります。

BrowserStack などのホスト型 Selenium Grid ソリューションを使用すると、 さまざまなプラットフォームやデバイスでテストを実施できます。 あります。

Selenium Grid 上の WebDriver BiDi

Selenium は WebDriver 標準(BiDi がないことに留意)に基づいていますが、 WebDriver BiDi の実験的なサポートを しばらく行いました本日より BrowserStack がホストする Selenium Grid 上で、WebDriver BiDi コマンドが本番環境で使用可能

これにより、リクエストのインターセプト、高度なエミュレーション、 ブラウザ イベントをリアルタイムで処理できます。これは Chrome だけでなく、 サポートしています。

次の例は、WebDriver BiDi を使用してログイベントをリッスンする方法を示しています。 。キャプチャしたログは、VM 上での 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 やその他のツールに拡大 その他の主要ブラウザにも対応予定です。

今回の発表でテストに興味があったものの、まだ始めていないのであれば、 web.dev の「テストの学習」コースをご確認ください。