首页 > 解决方案 > 如何等待元素可见

问题描述

是否可以等到元素可见?

cy.get('[data-test=submitIsVisible]').should('be.visible');如果提交按钮不可见,应该会出错。我想等到提交按钮可见。(主要用例是视觉测试,即截取页面)

标签: cypress

解决方案


您可以像这样等待元素可见:

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

根据赛普拉斯的文档

DOM基于命令将自动重试并在失败之​​前等待其对应的元素存在。

赛普拉斯为您提供了许多强大的查询方法DOM,所有这些方法都包含重试和超时逻辑。

其他等待元素存在的DOM方法是通过timeouts. Cypress 命令的default timeout时间为 4 秒,但是,大多数 Cypress 命令都有可自定义的timeout选项。超时可以全局配置,也可以按每个命令配置。在此处查看可定制的timeout选项列表

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


推荐阅读