gpt4 book ai didi

automation - Cypress - 在 iframe 中运行测试

转载 作者:行者123 更新时间:2023-12-04 12:42:03 25 4
gpt4 key购买 nike

我正在尝试在 iframe 中查找元素,但它不起作用。

有没有人有一些系统可以在 iframe 中使用 Cypress 运行测试?某种方式进入 iframe 并在那里工作。

最佳答案

这是一个已知问题,提到了 here .您可以创建自己的自定义 cypress 命令来模拟 iframe 功能。将以下功能添加到您的 cypress/support/commands.js

Cypress.Commands.add('iframe', { prevSubject: 'element' }, ($iframe, selector) => {
Cypress.log({
name: 'iframe',
consoleProps() {
return {
iframe: $iframe,
};
},
});
return new Cypress.Promise(resolve => {
resolve($iframe.contents().find(selector));
});
});

然后你可以像这样使用它:

cy.get('#iframe-id')
.iframe('body #elementToFind')
.should('exist')

此外,由于 CORS/同源策略原因,您可能必须设置 chromeWebSecurityfalsecypress.json (将 chromeWebSecurity 设置为 false 允许您访问嵌入在应用程序中的跨域 iframe,还可以导航到任何 super 域而不会出现跨域错误)。

不过,这是一种解决方法,它在本地对我有效,但在 CI 运行期间无效。

关于automation - Cypress - 在 iframe 中运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57605596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com