cypress - 如何等待元素可见
问题描述
是否可以等到元素可见?
cy.get('[data-test=submitIsVisible]').should('be.visible');
如果提交按钮不可见,应该会出错。我想等到提交按钮可见。(主要用例是视觉测试,即截取页面)
解决方案
您可以像这样等待元素可见:
// 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}
选项,您可以将其传递给大多数操作命令。
推荐阅读
- docker - 使用 Dockerfile 只安装需要的扩展(php8.0-apache)?
- javascript - 我无法启动服务器 nodejs
- reactjs - 格式化日期momentjs
- bash - 如何在监视命令中保留嵌套命令替换
- scala - 在没有 bintray 的情况下使用 mfglabs commons-aws-sqs 和 dwhjames 库
- dns - 如何将我在 AWS 中的子域路由到 Zendesk
- php - Telegram Bot 上的翻译
- java - 无法构建 /EJB 项目
- elasticsearch - 批量请求的最佳性能刷新策略是什么?
- nginx - 如果服务使用新的相对 url `Location` 标头响应,Kubernetes Ingress Nginx 控制器不会保留`path`