webdriverio 5.16 browser.element 不是函数

webdriverio 5.16 browser.element is not a function

我将 webdriver 从 4.8 升级到 5.16 后遇到问题:

我的package.json

    "@wdio/cli": "^5.16.15",
    "@wdio/local-runner": "^5.16.15",
    "@wdio/mocha-framework": "^5.16.15",
    "@wdio/spec-reporter": "^5.16.11",
    "@wdio/sync": "^5.16.15",
    ...
    "chromedriver": "^79.0.0",
    ...
    "selenium-webdriver": "3.0.0-beta-2",
    ....
    "wdio-chromedriver-service": "^5.0.2",
    "webdriverio": "^5.16.15",

然后在我的测试中我调用:

browser.element('body')

结果错误:

browser.element is not a function

这个函数被替换了吗(没有找到任何关于那个的注释)?如果是这样,现在要使用的功能是什么? 还是有其他问题?请帮忙

如果您要获取元素数组,则需要

browser.elements('body') // plural

对于单个元素只需使用

$('body')

希望我的想法是正确的

browser.elements(...) 不再存在于 v5.x - https://github.com/webdriverio/webdriverio/blob/master/CHANGELOG.md#boom-breaking-change-1

只需使用

const elem = $('body')

找到第一个元素,或者

const divs = $$('div')

查找所有元素,并将它们放入数组中。

如果我对你的问题的理解正确,browser.element() 在 v5 中不再可用。

根据他们的官方变更日志,它在 v5.

中更改为 browser.findElement

您也可以使用 browser.$() 代替 browser.element()

如果您还没有弄明白,这里是 v5 中的完整更改列表。

https://github.com/webdriverio/webdriverio/blob/master/CHANGELOG.md#v500-2018-12-20