我正在努力使用 browser.addCommand(),我使用 WebDriverIO 版本 6 + typescript,当我尝试向 wdio.conf.js 添加命令并运行测试时,它失败并出现错误“无法编译 TypeScript:”
我的 ts.confg:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"*": [
"./*"
],
"src/*": [
"./src/*"
],
"test/*": [
"./test/*"
]
},
"sourceMap": false,
"target": "es6",
"module": "commonjs",
"typeRoots": ["./types"],
"types": [
"node",
"@wdio/sync",
"@wdio/jasmine-framework"
],
"include": ["./test/**/*.ts","./types/wdio.d.ts"],
"exclude": [
"./node_modules"
],
}
wdio.d.ts 文件:
declare module WebdriverIO {
interface Element {
waitAndClick: () => void;
}
}
wdio.conf.js 文件:
before: function (capabilities, specs) {
browser.addCommand("waitAndClick", function () {
this.waitForDisplayed({timeout: 5000})
this.click()
}, true)
}
在页面对象中:
$('.classname').waitAndClick();
我可以在上面的示例中看到页面对象中的方法。当我尝试运行它失败并出现错误“无法编译 TypeScript:错误 TS2339:属性 'waitAndClick' 在类型'元素'上不存在。”