【问题标题】:Cypress - How to click on cookies "Accept cookies" pop up赛普拉斯 - 如何点击 cookie 弹出“接受 cookie”
【发布时间】:2022-08-22 14:31:44
【问题描述】:

我无法点击甚至检测到 badoo.com 上弹出式 cookie 中的任何元素

我正在使用各种命令,例如 get , contains 等。没有任何效果,它告诉我我没有找到元素:/

    标签: cypress


    【解决方案1】:

    看起来有一个iframe 阻止了您的测试代码。

    首先通过右键单击按钮来验证是否如此,选择“检查元素”,然后在“元素”面板中向上滚动,直到找到<iframe> 并找出它的id=... 属性。

    要处理 iframe,最简单的方法是使用 cypress-iframe 插件。

    笔记此插件上的说明尚未针对 Cypress 版本 10 进行更新。

    安装后,在规范顶部添加require('cypress-iframe');

    在测试中使用以下内容,但将上面找到的 id 替换为 #my-iframe

    cy.iframe('#my-frame')
      .find('button[title="Accept Cookies"]')
      .click()
    

    【讨论】:

    • 非常感谢,它完全按照您的描述工作。我在考虑那个 iframe,所以我有点惊讶它还没有在基本的柏树中实现
    • 别客气。我认为原生 iframe 在 Cypress 的路线图上。
    • 所以没花很长时间,我发现了另一个问题:D 我只想给你发一些聊天消息,而不是发送新问题,但无论如何,在我的测试成功登录之后,然后我的测试迷恋,在 RUN 命令中,它只是卡住了在进程中,在 OPEN 命令中,它将重新加载整个页面并显示测试文件以再次运行......也许它对赛普拉斯的网络安全性?
    【解决方案2】:

    经过另一项研究,它足以找到 iframe 的 ID,然后将其放在 .its('0.contentDocument.body') 之后,然后可以找到 inframe 内的任何元素

    cy.get('#sp_message_iframe_658470').its('0.contentDocument.body').find('button[title="Accept cookies"]').click();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多