【问题标题】:How to use Chai to simulate clicking on a hidden element?如何使用 Chai 模拟点击隐藏元素?
【发布时间】:2017-04-24 09:59:17
【问题描述】:

我正在为网站编写一些简单的 e2e 测试。

网站上有一个隐藏的叠加层,这是我在 Chrome 控制台中所做的,并且有效。

在我的代码中,我有如下内容:

it('v3::projects should be runnable', () => {
    const element = browser
      .executeAsync((done) => {
        done($(`.project-list #app${window.Project.first().cid} .card .overlay .icons a`)[0])
      })

    const result = browser
      .url('/workspace/apps')
      .click(element)
      .waitForVisible(`#simulator-wrapper`, 6 * 1000)

    return expect(result).to.be.true
  })

它总是说

v3 runnable v3::projects should be runnable:
selector needs to be typeof `string`
running chrome
Error: selector needs to be typeof `string`
    at Promise.F (node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js:35:28)
    at element([object Object]) - click.js:12:17
    at click([object Object]) - at Context.it (__tests__/e2e/v3_runnable.spec.js:47:8)

我认为我的选择器确实是一个字符串,它可以在我的浏览器中运行...

有人能指出代码有什么问题吗?提前致谢!

【问题讨论】:

    标签: javascript selenium-webdriver chai e2e-testing


    【解决方案1】:

    您发布的代码在 CSS 选择器周围有一个坟墓 (`) 而不是单引号 (')。尝试用 ' 替换坟墓,应该可以解决它。

    【讨论】:

    • 这里好像不太支持ES6的特性...谢谢!
    • 我试过done($('.project-list #app' + window.Project.first().cid + ' .card .overlay .icons a')[0])但还是不行
    • 我已经想通了。第一个问题是你在答案中提到的。另一个是元素被隐藏不可见,所以我需要控制鼠标悬停在元素上。我已经解决了这个问题。谢谢!
    • 很高兴听到这个消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 2018-02-24
    • 1970-01-01
    相关资源
    最近更新 更多