[英]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.
我做错了什么,或者代码中有什么不正确?
先感谢您
更新
还使用以下命令尝试了第二种方法:
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.