我在我们的团队中使用Cypress.io进行端到端测试,但我们经常遇到函数cy.visit()的问题。
该网站有许多来自我们服务器的资源(css文件,js文件,......)和一些外部资源(js文件)。如果您打开我们的网站,有时会发生外部js文件未决(浏览器正在等待)。
在执行cy.visit()期间,赛普拉斯可能会等到所有资源都被加载。这是一个问题。我不需要等待所有资源,因为例如这个外部js用于广告,对我们的测试来说并不重要。
我可以告诉赛普拉斯这样的事情:“在开始加载页面几秒钟后,您可以在没有加载所有资源的情况下执行此测试”?
我试过onBeforeLoad与setTimeout结合并重新加载,但它失败了:(
cy.visit('https://www.example.org', {
onBeforeLoad: (win) => {
setTimeout(function() {cy.reload(); }, 10000);
}
})
我太疯狂了,我不知道接下来做什么。请帮帮我,对不起我的英文:)谢谢! :)
您可以使用blacklistHosts: []
中的cypress.json
选项阻止不必要的域加载。只需将广告客户的域名(以及您可能不需要的任何内容,例如Google Analytics)添加到blacklistHosts
数组:
{
// the rest of your cypress.json...
"blacklistHosts": [
"cdn.my-advertiser.com"
]
}
More information about blacklistHosts
is available in the docs.