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

Matthias Rohmer
Matthias Rohmer

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

WebDriver BiDi 这一共同努力今天标志着一个重要里程碑。 从 BrowserStack 开始, 。

Selenium 和 BrowserStack

最近,BrowserStack 成为 Selenium 的官方开发合作伙伴, 一个成熟的开源浏览器自动化框架, WebDriver BiDi。这次合作充分证明了 BrowserStack 持续不断地 投资了 100% 的成熟测试生态系统,BrowserStack 还采用了 是 Selenium 的几位核心维护者。

Selenium Grid 是 Selenium 项目的一部分, 让您可以在多台设备上并行运行测试。不过,设置网格 获取和维护数十种不同的设备,以及 因此,保留这些功能可能并非易事,对有些人来说甚至不可能。

托管的 Selenium Grid 解决方案(如 BrowserStack)可让您更轻松地 而无需在您自己的设备上 。

Selenium 网格上的 WebDriver BiDi

Selenium 基于 WebDriver 标准(请注意缺少 BiDi),但已 对 WebDriver BiDi 的实验性支持将持续一段时间。从今天开始,您可以使用 正式版 WebDriver BiDi 命令,托管在 BrowserStack 的托管式 Selenium 网格上!

这最终实现了请求拦截、高级模拟和 实时处理浏览器事件,不仅在 Chrome 中,而且在每一种 支持 WebDriver BiDi 的浏览器。

以下示例展示了如何使用 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 上的“学习测试”课程