在柏树中,有没有一种方法可以检查一定数量的相同文本或链接实例



例如,在一些操作之后,我想确保"foo"只出现一次或两次,例如,我可以确定完全没有"foo",但检查实例数量会让我逃脱。

我遇到了同样的问题,我发现这是一个更简单的场景:

cy.get('li').filter(':contains("Services")').should('have.length', 2)

https://docs.cypress.io/api/commands/filter#Contains

假设文本位于li元素内部,并且您希望确保"foo"的出现次数不止一次。一种解决方案可能是:

cy.get('li').invoke('text')
.then(($text) => {
let count = ($text.match(/foo/g) || []).length;
expect(count).to.be.at.least(1);
// Or you could use:
// cy.wrap(count).should('be.at.least', 1);
})

当您在DOM中查询元素时,您将返回当时找到的元素数组。无论您是否有意期望使用数组,都会出现这种情况。此查询的结果可以是0、1或多个元素。

因此,如果您验证这个数组的长度,您将返回实例的数量。

cy.contains('foo').should('have.length',1);

将确保您只返回由定位器策略定位的元素的1个实例。

最新更新