REPL 接口
使用 v4.5.0
,WebdriverIO 引入了一个REPL 接口,它不仅可以帮助您学习框架 API,还可以帮助您调试和检查测试。它可以通过多种方式使用。
首先,您可以将其用作 CLI 命令,方法是安装 npm install -g @wdio/cli
并从命令行生成 WebDriver 会话,例如:
wdio repl chrome
这将打开一个 Chrome 浏览器,您可以使用 REPL 接口控制它。确保您在端口 4444
上运行浏览器驱动程序以启动会话。如果您有Sauce Labs(或其他云供应商)帐户,您也可以通过以下方式直接在云端命令行中运行浏览器:
wdio repl chrome -u $SAUCE_USERNAME -k $SAUCE_ACCESS_KEY
如果驱动程序在不同的端口(例如:9515)上运行,则可以通过命令行参数 --port 或别名 -p 传递。
wdio repl chrome -u $SAUCE_USERNAME -k $SAUCE_ACCESS_KEY -p 9515
Repl 也可以使用 webdriverIO 配置文件中的功能运行。Wdio 支持功能对象;或;多远程功能列表或对象。
如果配置文件使用功能对象,则只需传递配置文件的路径,否则如果它是多远程功能,则使用位置参数指定要从列表或多远程中使用的功能。注意:对于列表,我们考虑的是从零开始的索引。
示例
具有功能数组的 WebdriverIO
export const config = {
// ...
capabilities:[{
browserName: 'chrome', // options: `chrome`, `edge`, `firefox`, `safari`, `chromium`
browserVersion: '27.0', // browser version
platformName: 'Windows 10' // OS platform
}]
}
wdio repl "./path/to/wdio.config.js" 0 -p 9515
具有多远程功能对象的 WebdriverIO
export const config = {
// ...
capabilities: {
myChromeBrowser: {
capabilities: {
browserName: 'chrome'
}
},
myFirefoxBrowser: {
capabilities: {
browserName: 'firefox'
}
}
}
}
wdio repl "./path/to/wdio.config.js" "myChromeBrowser" -p 9515
或者,如果您想使用 Appium 运行本地移动测试
- 安卓
- iOS
wdio repl android
wdio repl ios
这将在连接的设备/模拟器/仿真器上打开 Chrome/Safari 会话。确保 Appium 在端口 4444
上运行以启动会话。
wdio repl './path/to/your_app.apk'
这将在连接的设备/模拟器/仿真器上打开 App 会话。确保 Appium 在端口 4444
上运行以启动会话。
iOS 设备的功能可以通过参数传递
-v
-platformVersion
:Android/iOS 平台的版本-d
-deviceName
:移动设备的名称-u
-udid
:真实设备的 udid
用法
- 长参数名称
- 短参数名称
wdio repl ios --platformVersion 11.3 --deviceName 'iPhone 7' --udid 123432abc
wdio repl ios -v 11.3 -d 'iPhone 7' -u 123432abc
您可以应用 REPL 会话可用的任何选项(请参阅 wdio repl --help
)。
使用 REPL 的另一种方法是在您的测试中通过 debug
命令使用它。这将在调用时停止浏览器,并允许您跳转到应用程序(例如开发工具)或从命令行控制浏览器。当某些命令无法按预期触发某个操作时,这很有用。使用 REPL,您可以尝试执行命令以查看哪些命令最可靠地工作。