在Cypress.io测试中,在应用过滤器后检查表中显示的“数据”时,它抛出“CypressError:超时重试:无法读取未定义的属性'eq'”。有人可以在下面的测试中建议如何解决问题吗?下面添加了表格HTML图像。

describe('Filter Test', function() {
    it.only('Check if the records are filtered successfully', function() {
        cy.visit('http://www.seleniumeasy.com/test/table-search-filter-demo.html')
        cy.get('button').contains('Filter').click()
        cy.get('input[placeholder="Username"]').type('jacobs')
        cy.get('table').should(($tr) => {
        const $tds = $tr.find('td') // find all the tds
        expect($tds.cells.eq(0)).to.contain('jacobs')
        })

    })

})

javascript - 如何在Cypress.io测试中获取显示在表<td>中的数据?-LMLPHP

javascript - 如何在Cypress.io测试中获取显示在表<td>中的数据?-LMLPHP

最佳答案

有多种方法可以执行此操作,但是在这种情况下,contains()函数是最简单的:

cy.get('table').contains('td', 'jacobs');

这将获取table元素,并断言它包含带有td文本的jacobs标记。

值得一提的是,contains()也作为一个选择,并且在典型 Cypress 的方式,你可以继续链断了,就像这样:
cy.get('table').contains('td', 'jacobs').should('be.visible');

cy.get('table').contains('td', 'jacobs').then(elem => {
    // Do something with this specific element...
});

// etc...

关于javascript - 如何在Cypress.io测试中获取显示在表<td>中的数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51875052/

10-12 16:05