0

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

该按钮没有 id 并且有一个长类名:

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 的文档,并遵循了这篇文章的一些建议:

按文本内容查找

我还认为可能是它在 4 秒后加载按钮,所以我将其提高 "defaultCommandTimeout"到 7000。但是,仍然没有运气。

有没有人有任何想法?

非常感激!

*** 编辑 ****

错误图片

在此处输入图像描述

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

在此处输入图像描述

4

1 回答 1

1

“全部接受”按钮位于 iframe 内。所以你必须先进入 iframe 内部,然后执行点击。

  1. 使用命令安装cypress-iframe插件npm install -D cypress-iframe

  2. cypress/support/commands.jsimport 'cypress-iframe';

  3. 在你的测试中写:

cy.iframe('[title="SP Consent Message"]').find('button[title="Accept All"]').click()
于 2021-10-23T10:18:17.940 回答