gpt4 book ai didi

testing - 什么等效于 Codeception waitForElement 方法?

转载 作者:行者123 更新时间:2023-11-28 19:53:06 25 4
gpt4 key购买 nike

Codeception::waitForElement

我正在从基于 PHP 的测试框架重写一些测试。我在检测 Ajax POST 请求获取的新 DOM 元素时遇到问题。

当我使用时:

cy.wait(timeout);

我能够填充根据 Ajax 请求加载的文本输入,但这是一种反模式。

我也试过来自:https://github.com/cypress-io/cypress/issues/937#issuecomment-345786498 的解决方案- 不适用于我的情况。

最佳答案

您可以简单地使用 cy.get() 来等待特定的 DOM 元素被渲染。 Cypress 将重试,直到 timeout 结束:

cy.get('.request-button').click()
cy.get('.some-new-element', {timeout: 10000})
// Cypress waits up to 10 seconds for element to appear
cy.get('.new-button').click()
// continue with test knowing the DOM has

...

如果新元素没有唯一选择器怎么办?

那么你遇到了一个更大的问题,因为无论如何你都需要使用选择器来对元素执行操作。

在这种情况下,如果文本嵌套在元素内的任何位置,您可以使用 cy.contains() 断言:

cy.contains('.common-class', 'new text', {timeout:10000})

不能这样做:

cy.get('.common-class).contains('new text') 

因为 Cypress 在 cy.get() 成功后不会再次查询 DOM,只会观察已经找到的 .common-class 用于更改的 DOM 节点

关于testing - 什么等效于 Codeception waitForElement 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50929716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com