我正在使用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);
}
})
我太疯狂了,我不知道下一步该怎么做。请帮助我,对不起我的英语:)谢谢! :)
答案 0 :(得分:2)
您可以使用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.