在阅读了关于网络安全的赛普拉斯文档以及何时禁用它之后,我决定我确实需要这样做。有没有办法只为一个特定的测试/测试套件禁用它?我使用的是3.4.1 版本,并且正在设置此配置cypress.json
- 因此它对所有测试都是全局的。
有没有办法只为一次测试禁用网络安全?谢谢!
在阅读了关于网络安全的赛普拉斯文档以及何时禁用它之后,我决定我确实需要这样做。有没有办法只为一个特定的测试/测试套件禁用它?我使用的是3.4.1 版本,并且正在设置此配置cypress.json
- 因此它对所有测试都是全局的。
有没有办法只为一次测试禁用网络安全?谢谢!
原答案:
这对你有用吗?
describe("test the config json", function () {
it("use web security false here", function () {
Cypress.config('chromeWebSecurity',false);
cy.visit("https://www.google.com");
console.log(Cypress.config('chromeWebSecurity'));
});
it("use web security true here", function () {
Cypress.config('chromeWebSecurity',true);
cy.visit("https://www.google.com");
console.log(Cypress.config('chromeWebSecurity'));
});
});
请参阅此处的文档https://docs.cypress.io/guides/references/configuration.html#Cypress-config
更新:
在我看到 DurkoMatKo 的评论后,我设法找到了一个 URL 来测试这个“chromeWebSecurity”选项。它没有按预期工作。我认为在运行同一个浏览器期间更改此配置可能不起作用,因为这更像是决定何时启动的浏览器功能。在这种情况下,我能想到的只是以不同的配置运行赛普拉斯。
此处的柏树文档显示了执行此操作的明确步骤。希望这可以帮助。
就我而言,它的工作方式如下。
第一件事是设置chromeWebSecurity
为false
//cypress.json
{
"chromeWebSecurity": false
}
然后我所做的是在将它分配给之前true
使用Cypress.config
//cypress/integration/testing.spec.js
context('DEMO-01', () => {
beforeEach(function () {
Cypress.config('chromeWebSecurity', true);
});
describe('CP001 - start dasboard', () => {
it('P01: open dashboard', () => {
cy.visit(URL);
});
});
});