如何在cypress中找到具有多个类的元素的类名

时间:2019-04-01 13:13:17

标签: automated-tests cypress

我是一名测试人员,并且我有此HTML代码。

<div id="columns">
    <div class="column ce-editable c1">
    </div> 
</div>

我正在使用赛普拉斯。我想检查div元素中是否有'c1'类名。如果我尝试:

cy.xpath ('//div[@id="columns"]//div')
        .should('have.class', 'c1')

我遇到此错误:

CypressError: Timed out retrying: You attempted to make a chai-jQuery assertion on an object that is neither a DOM object or a jQuery object.
The chai-jQuery assertion you used was:
  > class
The invalid subject you asserted on was:
  > [<div.column.ce-editable.c1>]
To use chai-jQuery assertions your subject must be valid.
This can sometimes happen if a previous assertion changed the subject.

1 个答案:

答案 0 :(得分:1)

我可以给你一个完全不同的方向。它远没有使用Xpaths :)。您可以执行以下操作来存档所需的内容:

cy.get('#columns')
  .find('div')
  .should('have.class','c1')

这会带来一些积极的结果: 1.更容易阅读正在发生的事情 2.调试更容易,您会看到赛普拉斯试图分三步验证c1。首先找到一些带有“ columns”的ID,然后在其下方找到一个div,然后断言最后搜索的div具有一个名为“ c1”的类。 3.结果显示出了更完美的效果,因为should()实际上是断言而不是动作。