设置类型
WebdriverIO 可用于各种目的。它实现了 WebDriver 协议 API,并可以以自动化方式运行浏览器。该框架旨在适用于任何任意环境和任何类型的任务。它独立于任何第三方框架,并且只需要 Node.js 即可运行。
协议绑定
对于与 WebDriver 和其他自动化协议的基本交互,WebdriverIO 使用其基于webdriver
NPM 包的自己的协议绑定。
- WebDriver
- Chrome 开发者工具
loading...
loading...
所有协议命令都返回来自自动化驱动程序的原始响应。该包非常轻量级,并且没有像自动等待这样的智能逻辑来简化与协议使用的交互。
应用于实例的协议命令取决于驱动程序的初始会话响应。例如,如果响应指示已启动移动会话,则该包会将所有 Appium 和 Mobile JSON Wire 协议命令应用于实例原型。
导入devtools
NPM 包时,您可以使用 Chrome 开发者工具协议运行相同的命令集(除了移动命令)。它与webdriver
包具有相同的接口,但其自动化基于Puppeteer运行。
有关这些包接口的更多信息,请参阅模块 API。
独立模式
为了简化与 WebDriver 协议的交互,webdriverio
包在协议之上实现了各种命令(例如dragAndDrop
命令)和核心概念,例如智能选择器或自动等待。上面示例可以简化为如下所示
loading...
在独立模式下使用 WebdriverIO 仍然可以让您访问所有协议命令,但它提供了一套额外的命令,这些命令提供了与浏览器的更高级别的交互。它允许您将此自动化工具集成到您自己的(测试)项目中以创建新的自动化库。流行的示例包括Spectron或CodeceptJS。您还可以编写纯 Node 脚本以抓取网络内容(或任何其他需要运行浏览器的操作)。
如果未设置任何特定选项,WebdriverIO 将始终尝试下载并设置与您功能中的browserName
属性匹配的浏览器驱动程序。对于 Chrome 和 Firefox,它也可能会安装它们,具体取决于它是否可以在机器上找到相应的浏览器。
有关webdriverio
包接口的更多信息,请参阅模块 API。
WDIO 测试运行器
不过,WebdriverIO 的主要目的是大规模进行端到端测试。因此,我们实现了一个测试运行器,可帮助您构建易于阅读和维护的可靠测试套件。
测试运行器解决了使用纯自动化库时常见的许多问题。首先,它组织您的测试运行并拆分测试规范,以便您的测试可以以最大并发性执行。它还处理会话管理,并提供大量功能来帮助您调试问题并在测试中查找错误。
以下是上面相同的示例,编写为测试规范并由 WDIO 执行
loading...
测试运行器是对 Mocha、Jasmine 或 Cucumber 等流行测试框架的抽象。要使用 WDIO 测试运行器运行您的测试,请查看入门部分以获取更多信息。
有关@wdio/cli
测试运行器包接口的更多信息,请参阅模块 API。