如何替换柏树中的显式等待调用?

问题描述

我正面临着几种情况,其中仅仅因为元素未加载而无法使用cy.get()。click()单击元素。但是,如果我加上最小的等待,例如cy.wait(100);元素变为可点击,我的代码运行正常。

可以避免这种显式调用cy.wait()的做法吗?

我认为如果我能以某种方式设置cy.wait(100)的固定等待时间,即所有步骤之间的间隔为0.1ms,我的问题将得到解决,但我不知道该怎么做。

enter image description here

解决方法

我找到了解决方案,将其发布给其他人使用

 cy.get('<your-selector-here>').should('be.visible').then(   ($el)  =>  {   $el.click() }    )

您可以简单地使用此断言.should('be.visible')来替换显式的等待调用。

但是,有一个陷阱。这仅适用于您100%确定该元素将出现的情况。如果没有出现该元素,则断言将简单地失败,并且测试将不再继续。

,

一个解决方案是,你可以使用 Cypress.config(defaultCommandTimeout: 10000) 针对特定情况增加默认命令超时。 在执行此代码后,增加的超时时间将适用于所有行。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...