跳至主要内容

设置类型

WebdriverIO 可用于各种目的。它实现了 WebDriver 协议 API,并可以以自动化方式运行浏览器。该框架旨在适用于任何任意环境和任何类型的任务。它独立于任何第三方框架,并且只需要 Node.js 即可运行。

协议绑定

对于与 WebDriver 和其他自动化协议的基本交互,WebdriverIO 使用其基于webdriver NPM 包的自己的协议绑定。

setup/webdriver.js
loading...

所有协议命令都返回来自自动化驱动程序的原始响应。该包非常轻量级,并且没有像自动等待这样的智能逻辑来简化与协议使用的交互。

应用于实例的协议命令取决于驱动程序的初始会话响应。例如,如果响应指示已启动移动会话,则该包会将所有 Appium 和 Mobile JSON Wire 协议命令应用于实例原型。

导入devtools NPM 包时,您可以使用 Chrome 开发者工具协议运行相同的命令集(除了移动命令)。它与webdriver包具有相同的接口,但其自动化基于Puppeteer运行。

有关这些包接口的更多信息,请参阅模块 API

独立模式

为了简化与 WebDriver 协议的交互,webdriverio包在协议之上实现了各种命令(例如dragAndDrop命令)和核心概念,例如智能选择器自动等待。上面示例可以简化为如下所示

setup/standalone.js
loading...

在独立模式下使用 WebdriverIO 仍然可以让您访问所有协议命令,但它提供了一套额外的命令,这些命令提供了与浏览器的更高级别的交互。它允许您将此自动化工具集成到您自己的(测试)项目中以创建新的自动化库。流行的示例包括SpectronCodeceptJS。您还可以编写纯 Node 脚本以抓取网络内容(或任何其他需要运行浏览器的操作)。

如果未设置任何特定选项,WebdriverIO 将始终尝试下载并设置与您功能中的browserName属性匹配的浏览器驱动程序。对于 Chrome 和 Firefox,它也可能会安装它们,具体取决于它是否可以在机器上找到相应的浏览器。

有关webdriverio包接口的更多信息,请参阅模块 API

WDIO 测试运行器

不过,WebdriverIO 的主要目的是大规模进行端到端测试。因此,我们实现了一个测试运行器,可帮助您构建易于阅读和维护的可靠测试套件。

测试运行器解决了使用纯自动化库时常见的许多问题。首先,它组织您的测试运行并拆分测试规范,以便您的测试可以以最大并发性执行。它还处理会话管理,并提供大量功能来帮助您调试问题并在测试中查找错误。

以下是上面相同的示例,编写为测试规范并由 WDIO 执行

setup/testrunner.js
loading...

测试运行器是对 Mocha、Jasmine 或 Cucumber 等流行测试框架的抽象。要使用 WDIO 测试运行器运行您的测试,请查看入门部分以获取更多信息。

有关@wdio/cli测试运行器包接口的更多信息,请参阅模块 API

欢迎!我如何帮助您?

WebdriverIO AI Copilot