实用预期条件库服务
wdio-wait-for 是一个用于WebdriverIO 的 Node.js 库,它提供了一组常见的条件,这些条件提供了等待特定条件的功能,直到定义的任务完成。
安装
要在您的项目中使用 wdio-wait-for
,请运行
npm i -D wdio-wait-for
如果您使用 Yarn,请运行
yarn add --dev wdio-wait-for
API
- alertIsPresent
- numberOfWindowsToBe
- titleContains
- titleIs
- urlContains
- urlIs
- elementToBeClickable
- elementToBeEnabled
- elementToBeSelected
- invisibilityOf
- numberOfElementsToBe
- numberOfElementsToBeLessThan
- numberOfElementsToBeMoreThan
- presenceOf
- sizeOfElementToBe
- stalenessOf
- textToBePresentInElement
- textToBePresentInElementValue
- visibilityOf
- 并且
- 不
- 或者
示例
导入
CommonJS
如果您使用的是 WebdriverIO v7 及更低版本以及CommonJS,则必须使用 require
导入包,例如:
// import all methods
const EC = require('wdio-wait-for');
browser.waitUntil(EC.alertIsPresent(), { timeout: 5000, timeoutMsg: 'Failed, after waiting for the alert to be present' })
// import specific method
const { alertIsPresent } = require('wdio-wait-for');
browser.waitUntil(alertIsPresent(), { timeout: 5000, timeoutMsg: 'Failed, after waiting for the alert to be present' })
ESM
使用 TypeScript 或 WebdriverIO v8 及更高版本,您可以使用 import
语句导入所有辅助方法,例如:
// import all methods
import * as EC from 'wdio-wait-for';
browser.waitUntil(EC.elementToBeEnabled('input'), { timeout: 5000, timeoutMsg: 'Failed, after waiting for the element to be enabled' })
或仅导入特定的方法,例如:
// import specific method
import { elementToBeEnabled } from 'wdio-wait-for';
browser.waitUntil(elementToBeEnabled('input'), { timeout: 5000, timeoutMsg: 'Failed, after waiting for the element to be enabled' })
等待警报
此代码片段展示了如何使用条件
browser.waitUntil(alertIsPresent(), { timeout: 5000, timeoutMsg: 'Failed, after waiting for the alert to be present' })
等待元素
此代码片段展示了如何使用条件来等待例如特定数量的元素存在
browser.waitUntil(numberOfElementsToBe('.links', 2), { timeout: 5000, timeoutMsg: 'Failed, after waiting for the 2 elements' })
许可证
作者
Yevhen Laichenkov - [email protected]
Christian Bromann - [email protected]