如何检查包含某些元素的多个元素? -柏树

时间:2020-06-22 10:11:08

标签: cypress assertion

我正在尝试使用赛普拉斯检查列表中是否包含2个特定条目。

我尝试过:

cy.get('ul.messages_list')
            .children()
            .contains('text')
            .and('contain', 'emailAddress)
            .should('have.length', 2)

问题在于,一旦我使用.contains(),它就位于单个元素中,而我无法检查它们是否存在多个。

3 个答案:

答案 0 :(得分:0)

我只是遇到了同样的问题。这对您有用吗?

cy.get('ul.messages_list').children().should(($children) => {
            expect($children).to.contain('text');
            expect($children).to.contain('emailaddress);
            expect($children.length).to.eq(2);
        })

我总共有大约8个小时的赛普拉斯菜鸟经验,所以您可能需要进行一些调整:-)

答案 1 :(得分:0)

const messages = cy.get('ul.messages_list').children();

messages.contains('text');
messages.contains('emailAddress');

messages.should('have.length', 2);

答案 2 :(得分:0)

尝试将 .contains('text') 替换为 .should('contain', 'text')。 通过这种方式,您应该能够使用 .and() 链接断言:

cy.get('ul.messages_list')
        .children()
        .should('contain', 'text')
        .and('contain', 'emailAddress)
        .and('have.length', 2)