【问题标题】:How to check if an element exist on the dom after an event with Cypress?赛普拉斯事件后如何检查dom上是否存在元素?
【发布时间】:2020-07-09 14:04:51
【问题描述】:

我读过这篇关于条件测试的文章,但还是不明白。 https://docs.cypress.io/guides/core-concepts/conditional-testing.html#Error-Recovery

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

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

“在一个事件之后(例如提交输入的值),检查dom上是否有某个元素,然后做一些事情,否则做其他事情”

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

但事实并非如此,这是现代网站的正常行为。

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

人们通常如何管理这个?

【问题讨论】:

    标签: cypress


    【解决方案1】:

    我建议将它链接到始终呈现的 DOM 树中的上层元素上,例如:

        cy.get('.app__inner').then($app => {
            if ($app.find('.your_element').is(':visible')) {
    
                // fill the logic here
            } else {
    
                // fill the logic here
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多