如何正确使用Cypress中的if语句
在运行了一些测试并发现了更多层来解决此问题后,我正在重新格式化此问题 当前问题 因此,我发现我可以在下划线中添加一个如何正确使用Cypress中的if语句,cypress,Cypress,在运行了一些测试并发现了更多层来解决此问题后,我正在重新格式化此问题 当前问题 因此,我发现我可以在下划线中添加一个数据cy,表示选择了一个状态。然后,我在州名称中添加了一个数据cy 这样我就可以试着运行这样的测试: it('Clicks to delete selected states', () => { if(cy.get('[data-cy=state_underline]').should('be.selected')){ cy.g
数据cy
,表示选择了一个状态。然后,我在州名称中添加了一个数据cy
这样我就可以试着运行这样的测试:
it('Clicks to delete selected states', () => {
if(cy.get('[data-cy=state_underline]').should('be.selected')){
cy.get('[data-cy=state_name]')
.click({ multiple: true })
}
});
错误
当运行.should('be.selected')
时,它会选择前几个状态,然后抛出此错误:
CypressError:超时重试:coordsHistory必须至少有2组coords
当我将.should('be.selected')
切换到.should('be.visible')
它抛出以下错误:
此元素“[,58更多…]”不可见,因为它的有效宽度和高度为:“0 x 2”像素。
原始问题 我正在尝试编写一个测试来取消选择已选择的状态。唯一正在改变的是
{
如果(cy.get(“”)=“”){
cy.单击()
cy.get(“[data cy=默认按钮]”)
.eq(3)
。单击();
}
});
**更新**
因此,在进一步挖掘之后,我发现在状态下有一个带下划线的跨距,表示它被选中。现在我想知道我是否可以说一些类似于.should('be.visible')
的话,然后cy.click()
it
下划线范围码
如果您想要接收元素状态的布尔检查,我建议使用jQuery,Cypress内置了jQuery。或者它可能具有允许获取元素当前状态的属性。
假设您有跨距,如果它有带下划线的子跨距,我们可以假设它已被选中。因此,对于jquery,它将是smth,如:
if(Cypress.$('span[class*=“StateText”]”)具有('span[class*=“Underline”]){
//处理所选元素的逻辑。
}
或
cy.get('span[class*=“StateText”]').filter(':has(span[class*=“Underline”])…//现在我们已经选择了所有span
使用jquery比在条件中处理cypress-chainer容易得多,因为断言返回的是cypress-chainer对象,而不是布尔值
it('Clicks to selected states', () => {
if (cy.get('<span class="css-mdt04d-StateText css-1x6iasc3">') === '<span class="css-ddft8r-StateText css-1x6iasc3">'){
cy.click()
cy.get('[data-cy=default-buttons]')
.eq(3)
.click();
}
});