赛普拉斯事件后如何检查dom中是否存在元素?

时间:2020-07-09 14:04:51

标签: cypress

我已经阅读了有关条件测试的这篇文章,但仍然不理解。 https://docs.cypress.io/guides/core-concepts/conditional-testing.html#Error-Recovery

在这种情况下,当我在输入中输入一个值然后提交它时,有时,根据我输入的值,它会显示/提供DOM上的另一个元素。

所以我需要做类似的事情:

“在发生事件后(例如,在输入中提交值),请检查dom中是否存在某些元素,然后执行某些操作,否则执行其他操作”

从我在cypresss文档中阅读的内容来看,他们一直在说dom应该始终相同,根据我们在输入中输入的值而出现的元素应该已经存在。

但是事实并非如此,在现代网站中这是正常现象。

我该怎么做?否则,当我尝试“获取”该元素时,如果该元素不存在,则会崩溃。

人们通常如何管理这个问题?

1 个答案:

答案 0 :(得分:1)

我建议将其链接在始终呈现的DOM树的上部元素上,例如:

    cy.get('.app__inner').then($app => {
        if ($app.find('.your_element').is(':visible')) {

            // fill the logic here
        } else {

            // fill the logic here
        }
    });