Cypress自动化:基于域的Javascript执行问题

Cypress自动化:基于域的Javascript执行问题,javascript,automated-tests,e2e-testing,cypress,webautomation,Javascript,Automated Tests,E2e Testing,Cypress,Webautomation,在柏树上测试时出现问题。 问题:使用Cypress进行测试时未加载JS文件 当设置了一个窗口属性时,会添加一个复选框来加载JS文件 Cypress将请求的URL打开到iFrame中,iFrame有自己的窗口对象。 因此,站点的实际窗口对象不同,Cypress窗口对象也不同 因此,未在Cypress浏览器中加载JS文件 加载JS文件所需的窗口属性将值返回为“未定义”,因为Cypress在自己的框架中运行站点,该框架具有自己的窗口对象 我们尝试过的解决方案:这仍然不起作用。 -我们尝试从测试本身

在柏树上测试时出现问题。 问题:使用Cypress进行测试时未加载JS文件

  • 当设置了一个窗口属性时,会添加一个复选框来加载JS文件
  • Cypress将请求的URL打开到iFrame中,iFrame有自己的窗口对象。 因此,站点的实际窗口对象不同,Cypress窗口对象也不同
  • 因此,未在Cypress浏览器中加载JS文件
  • 加载JS文件所需的窗口属性将值返回为“未定义”,因为Cypress在自己的框架中运行站点,该框架具有自己的窗口对象
我们尝试过的解决方案:这仍然不起作用。 -我们尝试从测试本身设置窗口对象的属性。 -此外,还尝试向配置文件添加“chromeWebSecurity”:false


describe(‘ExampleTest’, () => {
    it('Verify test’, () => {

    cy.visit(Cypress.config().baseUrl )
    cy.login(email, password)

    parent.window.GLOBAL_VAR = true 
    window.GLOBAL_VAR  = true
    parent.window.frames[0].window.GLOBAL_VAR = true
    parent.window.frames[1].window.GLOBAL_VAR= true

    cy.window().then((window) => {
        window.GLOBAL_VAR  = true
        window.frames[0].window.GLOBAL_VAR = true
    }
}

注: -GLOBAL_VAR是帧内未定义的属性。 -父窗口的属性设置为true,但其框架窗口属性仍为“未定义”。Cypress在框架中打开请求的URL。因此,它不设置窗口属性。这反过来又不会加载JS


您应该能够在应用程序的窗口对象上安装EventListener。这可能仅限于在cypress中运行应用程序的情况。然后您可以在测试期间抛出此事件。不确定是否可以轻松处理谢谢您的帮助,@JosefBiehler但设置EventListener在这种情况下不起作用,因为我们需要在加载窗口之前设置GLOBAL_VAR属性,因为它用于加载特定的JS文件。