现在可在 BrowserStack 上通过 WebDriver BiDi 实现自动化

Matthias Rohmer
Matthias Rohmer

在过去三年中,Chrome 的浏览器自动化团队一直在与 BrowserStack 等其他主要浏览器和工具供应商合作,打造 WebDriver BiDi,这是一种新的浏览器自动化协议,可在浏览器中实现双向自动化工作流。以前,这些工作流只能在基于 Chromium 的浏览器中使用专有 Chrome 开发者工具协议实现。

今天,WebDriver BiDi 终于可以供开发者在生产环境中使用,这标志着这项共同努力取得了重要进展,从今天开始,BrowserStack 将率先支持 WebDriver BiDi。

Selenium 和 BrowserStack

近期,BrowserStack 成为了 Selenium 的官方开发合作伙伴。Selenium 是一款成熟的开源浏览器自动化框架,也为 WebDriver BiDi 做出了贡献。这种合作伙伴关系证明了 BrowserStack 持续投资打造蓬勃发展的测试生态系统,BrowserStack 还聘请了几个 Selenium 核心维护人员。

Selenium Grid 是 Selenium 项目的一部分,可让您在多部设备上并行运行测试。但是,对于某些人来说,自行设置 Grid、获取和维护数十种不同的设备并确保它们可用,这可能具有挑战性,甚至是不可能的。

借助 BrowserStack 等托管式 Selenium 网格解决方案,您可以更轻松地在许多不同的平台和设备上运行测试,而无需自行管理。

Selenium 网格上的 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 上的“学习测试”课程