Cypress-为每个页面向窗口公开window.top属性

Cypress-为每个页面向窗口公开window.top属性,cypress,Cypress,Web应用程序可以设置窗口。放置道具,并在以后不加前缀地引用它们 top.foo = function(){} ... foo() foo()在从正常浏览器会话访问应用程序时工作,但在Cypress runner b/ctop属于Cypress runner时会失败 在不修改应用程序代码的情况下,是否有办法在每个页面的窗口中未定义道具时返回到窗口。top?差不多 beforeEach(function () { cy.on('window:before:load', (win) =>

Web应用程序可以设置
窗口。放置
道具,并在以后不加前缀地引用它们

top.foo = function(){}
...
foo()
foo()
在从正常浏览器会话访问应用程序时工作,但在Cypress runner b/c
top
属于Cypress runner时会失败

在不修改应用程序代码的情况下,是否有办法在每个页面的
窗口中未定义道具时返回到
窗口。top
?差不多

beforeEach(function () {
  cy.on('window:before:load', (win) => {
    ...
  })
})

对于缺少的部分,我已经考虑过了

  • 使用
    cy.stub()
    。但无法为每个属性设置存根窗口
  • 使用
    object.setPrototypeOf()将
    window
    对象的原型设置为
    window.top
    。但是有错误
    Immutable prototype object '[object Window]' cannot have their prototype set