【问题标题】:webdriverio 5.16 browser.element is not a functionwebdriverio 5.16 browser.element 不是函数
【发布时间】:2019-12-18 10:51:03
【问题描述】:

我将 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

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

【问题讨论】:

    标签: node.js webdriver selenium-chromedriver webdriver-io


    【解决方案1】:

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

    根据他们的官方更新日志,在 v5 中将其更改为 browser.findElement

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

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

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

    【讨论】:

      【解决方案2】:

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

      随便用

      const elem = $('body')
      

      查找第一个元素,或

      const divs = $$('div')
      

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

      【讨论】:

        【解决方案3】:

        如果你想得到一个元素数组,那么你需要

        browser.elements('body') // plural

        对于单个元素只需使用

        $('body')

        希望我的想法是对的

        【讨论】:

          猜你喜欢
          • 2019-05-21
          • 2022-10-24
          • 2021-07-29
          • 2019-08-24
          • 1970-01-01
          • 2022-07-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多