cypress,在可见元素之间循环,但也会获得隐藏元素的断言

cypress,在可见元素之间循环,但也会获得隐藏元素的断言,cypress,ui-testing,Cypress,Ui Testing,我在尝试测试页面上的过滤器选择时遇到了一个非常奇怪的情况。我有一个项目列表,并根据选定的过滤器隐藏其中一些项目。隐藏元素的强制样式为“display:none”,应将其视为cypress的不可见元素 但是我正在检查这个隐藏的项目,结果我的测试失败了 我希望你们中的一些人遇到类似的问题,能够帮助理解我做错了什么。 (我怀疑这与元素被隐藏和cypress没有正确拾取有关)。我是非常新的cypress UI测试和总体UI测试 这是一个示例代码: cy.get(".row.uicomponent__de

我在尝试测试页面上的过滤器选择时遇到了一个非常奇怪的情况。我有一个项目列表,并根据选定的过滤器隐藏其中一些项目。隐藏元素的强制样式为“display:none”,应将其视为cypress的不可见元素

但是我正在检查这个隐藏的项目,结果我的测试失败了

我希望你们中的一些人遇到类似的问题,能够帮助理解我做错了什么。 (我怀疑这与元素被隐藏和cypress没有正确拾取有关)。我是非常新的cypress UI测试和总体UI测试

这是一个示例代码:

cy.get(".row.uicomponent__devices-block .devices-item-wrapp:not(:hidden)")
    .should("have.length", 14)
    .each(function ($el, index, $list) {
        if ($el.is(":not(:hidden)")) {
            cy.get($el).should('have.attr', 'data-filter-brand', 'apple')
        }
    })

令人好奇的是,Cypress将元素识别为可见元素。但是我认为您可以通过确保所需元素没有显示:none来解决这个问题。您可以通过添加:
js.should('not.have.css','display','none`)来存档它。
我一定会尝试,但是既然我是在循环中这样做的,有没有办法获得元素的条件检查?