Cypress Automation - 无法根据文本找到按钮

Cypress Automation - Cannot find button based on text

我正在学习 Cypress,过去几周一直在自动化各种网站。但是,我在单击基于 class 或文本值的按钮时遇到问题。 (应该很简单,我知道)

该按钮没有 ID,名称很长 class:

message-component message-button no-children focusable sp_choice_type_11 last-focusable-el

下图显示了完整的元素:

我试过以下代码:

 cy.contains('Accept All').click() 

 cy.get('#message-component message-button no-children focusable sp_choice_type_11 last-focusable-el').contains('Accept All').click();
        
cy.get('button').contains('Accept All').click()

然而,它只是报同样的错误,找不到按钮。

我已经检查了 cypress 的文档并遵循了一些建议 post:

我还认为它可能会在 4 秒后加载按钮,所以我将 "defaultCommandTimeout" 提高到 7000。但是,还是不行。

有没有人有什么想法?

非常感谢!

*** 编辑 ****

错误图片

在 cypress 中显示弹出窗口的屏幕截图:

'Accept All' 按钮位于 iframe 内。所以你必须先进入iframe,然后执行点击。

  1. 使用命令 npm install -D cypress-iframe

    安装 cypress-iframe 插件
  2. 转到cypress/support/commands.js并写入import 'cypress-iframe';

  3. 在你的测试中写:

cy.iframe('[title="SP Consent Message"]').find('button[title="Accept All"]').click()