赛普拉斯iframe功能适用于Chrome,但不适用于Firefox

时间:2020-11-04 01:31:19

标签: firefox cypress

我正在尝试运行一个涉及带Firefox的iframe的测试。该测试适用于chrome,但不适用于Firefox。看来,当我获取iframe并随后尝试找到该正文时,该正文返回为未定义。

Timed out retrying: Expected to find element: undefined, but never found it.

cy.get('iframe').then(($iframe) => {
     const $body = $iframe.contents().find('body');
     cy.wrap($body)
        ^

firefox的html与chrome的html相同。有谁知道这是什么根本问题?

1 个答案:

答案 0 :(得分:0)

最可能的原因是same origin policy

简而言之,如果iframe中加载的页面与父页面来自不同的域,那么您的JavaScript将无法访问iframe中的DOM。

它在Chrome上为您工作的原因很可能是因为您在cypress.json配置文件中使用了此设置来禁用Chrome中的同一来源策略:

   "chromeWebSecurity": false

撰写本文时(2020年11月),Firefox遗憾地没有一种等效的方法来出于测试目的禁用相同的原始策略。错误报告为here