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