Javascript Cypress-从表td中筛选非零
我对cypress很陌生,在进行集成测试时使用了它,遇到了一个问题,我想根据“td”过滤表的内容。我使用回调从行中获取“td”,并尝试使用承诺,然后选择它,但它似乎不起作用Javascript Cypress-从表td中筛选非零,javascript,cypress,Javascript,Cypress,我对cypress很陌生,在进行集成测试时使用了它,遇到了一个问题,我想根据“td”过滤表的内容。我使用回调从行中获取“td”,并尝试使用承诺,然后选择它,但它似乎不起作用 cy.get($trs).find('td:nth-child(9)').then(($tds)=>{ cy.get($tds) .should('not.have.value',0) .first() }) t
cy.get($trs).find('td:nth-child(9)').then(($tds)=>{
cy.get($tds)
.should('not.have.value',0)
.first()
})
td没有附加任何类名或属性,否则可能会使用not()
或filter()
不管怎样,有人有什么建议吗?如果你能分享html源代码以及你想在屏幕截图中检查什么值,那就太好了 我猜你想在截图中找到elment。您可以使用在屏幕截图中循环突出显示的元素
cy.get('tr').find('td:nth-child(9)').each(($td)=>{
cy.wrap($td).invoke('text').then(($text)=> {
if ($text !== "0")
//do something here
{console.log($text)}
})
})
嗯,多亏了-我找到了一个性能友好的解决方案
cy.get($trs).find('td:nth-child(9)').each(($td) => {
cy.get($td).not(':contains("0")') // This is the key :)
.first().parent('tr')
// do your stuffs
})
我现在不能再深入研究它了,但乍一看,有一件事突然出现在我的眼前-
应该
断言应该总是在DOM选择器之前。意味着您需要先更改命令的顺序
和应该
命令。。。docy.get($tds).first().should('not.have.value',0)
…并不是说它能解决您的整体问题,它只是吸引了我的眼球。那么,有什么方法可以跳过循环吗?表中的行可以更有效,因此我可以有更好的解决方案吗?在您的屏幕截图中,您有4个值需要检查。如何不使用循环检查多个值?性能方面,您可以指定我们要检查多少行吗?它是动态的,范围从5到1000。不过,我找到了一个更好的解决方案,将其发布在这里