从v5到v6
本教程适用于仍在使用WebdriverIO v5
并想迁移到v6
或WebdriverIO最新版本的用户。正如我们在发布博客文章中提到的,此版本升级的变更可以总结如下:
-
我们整合了一些命令的参数(例如
newWindow
、react$
、react$$
、waitUntil
、dragAndDrop
、moveTo
、waitForDisplayed
、waitForEnabled
、waitForExist
),并将所有可选参数移到一个单一对象中,例如:// v5
browser.newWindow(
'https://webdriver.io',
'WebdriverIO window',
'width=420,height=230,resizable,scrollbars=yes,status=1'
)
// v6
browser.newWindow('https://webdriver.io', {
windowName: 'WebdriverIO window',
windowFeature: 'width=420,height=230,resizable,scrollbars=yes,status=1'
}) -
服务的配置移到了服务列表中,例如:
// v5
exports.config = {
services: ['sauce'],
sauceConnect: true,
sauceConnectOpts: { foo: 'bar' },
}
// v6
exports.config = {
services: [['sauce', {
sauceConnect: true,
sauceConnectOpts: { foo: 'bar' }
}]],
} -
为了简化,一些服务选项被重命名
-
我们将命令
launchApp
重命名为launchChromeApp
,用于Chrome WebDriver会话
信息
如果您正在使用WebdriverIO v4
或更低版本,请先升级到v5
。
虽然我们希望有一个完全自动化的迁移过程,但现实情况有所不同。每个人都有不同的设置。每个步骤应该被视为指导,而不是一步一步的指示。如果您在迁移过程中遇到问题,请不要犹豫,联系我们。
设置
与其他迁移类似,我们可以使用WebdriverIO codemod。要安装codemod,请运行:
npm install jscodeshift @wdio/codemod
升级WebdriverIO依赖
鉴于所有WebdriverIO版本都相互紧密关联,最好总是升级到特定的标签,例如6.12.0