小编O_D*_*ano的帖子

收到“cy.click 失败,因为执行此命令时页面已更新”错误

我编写了这段代码来单击下拉列表的第一个选项并在 Cypress 中运行它

it('Choosing tag', () => {
    cy.get('[data-appearance="textfield"]').eq(1).click();
    cy.get('[role="option"]').eq(0).as('option').should('be.visible');
    cy.get('@option').then(($option) => {
      cy.wrap($option).click();
    });
  });
Run Code Online (Sandbox Code Playgroud)

但是在 cy.click 阶段我收到了这个错误

4050 毫秒后超时重试:cy.click() 失败,因为执行此命令时页面已更新。赛普拉斯尝试根据此查询来定位元素:

<button.ng-star-inserted>

我们最初找到了匹配的元素,但在等待它们变得可操作时,它们从页面中消失了。发生这种情况的常见情况:您的 JS 框架异步重新渲染您的应用程序代码对事件触发做出反应并删除了元素

通常可以通过打破链条来解决这个问题。例如,重写:

cy.get('button').click().click() 到 cy.get('button').as('btn').click() cy.get('@btn').click()

正如您在我的代码中看到的,我遵循了错误文本中的建议,但没有帮助。当我以用户身份访问该页面时,所需的元素是可单击的。

我希望有办法解决这个问题。谢谢。

cypress

3
推荐指数
1
解决办法
2014
查看次数

标签 统计

cypress ×1