透過 WebDriver BiDi 的自動化功能現已支援 BrowserStack

Matthias Rohmer
Matthias Rohmer

過去三年來,Chrome 的瀏覽器自動化團隊與別家主要瀏覽器和工具廠商 (例如 BrowserStack) 合作建立 WebDriver BiDi,這是一種新的瀏覽器自動化通訊協定,支援不同瀏覽器的雙向自動化工作流程。這些工作流程先前只能透過 Chromium 瀏覽器中的專屬 Chrome 開發人員工具通訊協定執行。

今天是這項共同努力的重要里程碑,因為 WebDriver BiDi 終於可供開發人員在實際環境中使用,從今天起,BrowserStack 就會提供這項功能。

Selenium 和 BrowserStack

近期,BrowserStack 成為 Selenium 的官方開發合作夥伴,Selenium 是成熟的開放原始碼瀏覽器自動化架構,也為 WebDriver BiDi 做出貢獻。這項合作關係證明 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 的瀏覽器中啟用。

以下範例說明如何在 BrowserStack 上使用 WebDriver BiDi 監聽記錄事件。接著,您也可以在 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 參閱「學習測試」課程