Cypress 如何等待元素可见

Cypress 如何等待元素可见,cypress,Cypress,是否可以等到元素可见 cy.get('[data test=submitIsVisible]')。应该('be.visible')应出错。我想等到“提交”按钮出现。(主要用例是视觉测试,即拍摄页面截图)您可以等待元素可见,如下所示: // Give this element 10 seconds to appear cy.get('[data-test=submitIsVisible]', { timeout: 10000 }).should('be.visible'); 根据: 基于DOM的

是否可以等到元素可见


cy.get('[data test=submitIsVisible]')。应该('be.visible')应出错。我想等到“提交”按钮出现。(主要用例是视觉测试,即拍摄页面截图)

您可以等待元素可见,如下所示:

// Give this element 10 seconds to appear
cy.get('[data-test=submitIsVisible]', { timeout: 10000 }).should('be.visible');
根据

基于DOM的命令将自动重试,并等待相应的元素存在,然后失败

Cypress为您提供了许多查询
DOM
的健壮方法,所有这些方法都使用重试和超时逻辑进行包装

等待元素出现在
DOM中的其他方法是通过
超时。Cypress命令的默认超时时间为4秒,但是,大多数Cypress命令都有可自定义的超时选项。可以全局配置超时,也可以基于每个命令配置超时

在某些情况下,您的
DOM
元素将不可操作。Cypress为您提供了一个强大的
{force:true}
选项,您可以将该选项传递给大多数操作命令


大多数Cypress命令都有可自定义的
timeout
选项。可以全局配置超时,也可以基于每个命令配置超时。检查可自定义的
超时
选项列表

您是说这不起作用吗?看起来应该这样。你能给出更多的上下文吗,比如页面HTML是什么,是什么导致按钮从不可见变为可见。@MarionMorrison我只是误读了文档,如果下面接受的答案是正确的(我还没有完全测试过),那么这就是greatI。我测试了一个负数,.should('be.visible')似乎意味着它在页面上可见(不一定是视口)。我认为值得指出的是,因为我正在测试scrollIntoView实现,即使元素不在视口中也返回true。