- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从基于 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/
我正在将编码转换为 Junit4(webdriver) 。当我在 Eclipse 中运行代码时,我在下面的代码中收到错误, for (int second = 0;; second++) { if
Codeception::waitForElement 我正在从基于 PHP 的测试框架重写一些测试。我在检测 Ajax POST 请求获取的新 DOM 元素时遇到问题。 当我使用时: cy.wait
大家好,我正在尝试修复我的许多场景,这些场景使用高级 AJAX 测试页面和通过 JQuery 构建客户端屏幕,但遇到了很多问题。 主要是,我很难知道某些 AJAX 请求何时完成。我试过只延迟 slee
IWebDriver driver = Browser.Instance.Driver; if (timeout > 0) { WebDriverWait wait = new WebDriv
这里有一个奇怪的地方。我将 Selenium WebDriver 与 IE11 和我正在编写的 C# 测试用例一起使用。 driver.Navigate().GoToUrl("testpa
我们目前正在开发需要在 Internet Explorer 11 上运行的 Aurelia 应用程序。一切都很好,直到我们尝试使用 karma-ie-launcher 在 IE11 上运行我们的 Ka
我是一名优秀的程序员,十分优秀!