繁体   English   中英

单击 iFrame 内的元素 - 赛普拉斯

[英]Click on element inside iFrame - Cypress

任何人都可以,请协助以下:

想要单击位于找到的 iframe 上的元素。 另外,导入的插件import 'cypress-iframe'; 命令类中。 创建 iframe 并点击元素的代码:

clickIFrameElement(elementCss, element1Css) {
    cy.frameLoaded(elementCss);
    cy.iframe(elementCss).find(element1Css).then(function(){
       cy.get(element1Css).click({ force: true })
    })
}

在测试中,我调用这个命令:

cy.frameLoaded(elementCss).eq(0);
cy.iframe().find(element1Css).should('be.visible').click()

它确实找到了 iframe,但不点击元素。 得到的错误:

Timed out retrying after 20000ms: Expected to find element: #grouped-pageload-Banner button[class*="save-consents evSpAcceptBtn"], but never found it.

用于 iframe 的 HTML: 在此处输入图像描述

我做错了什么,或者代码中有什么不正确?

先感谢您

更新

还使用以下命令尝试了第二种方法:

cy.iframe().find(#grouped-pageload-Banner button[class*="save-consents evSpAcceptBtn"]).should('be.visible').click()

但得到第二个错误:

cypress-iframe commands can only be applied to exactly one iframe at a time.  Instead found 7

请将此行替换为您的代码

cy.iframe('#ifrmCookieBanner')
    .find('#grouped-pageload-Banner button[class*="save-consents evSpAcceptBtn"]')
    .should('be.visible')
    .click()

并将其放入您的support/index.js

Cypress.on('uncaught:exception', (err, runnable) => {
    // returning false here prevents Cypress from
    // failing the test
return false
})

检查 iframe URL 是否属于当前窗口的同一个域,否则出于安全原因无法执行。 但是,如果您有如何在用户中安装 Chrome 扩展程序,则可以通过 content_script 执行此操作;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM