11

在阅读了关于网络安全的赛普拉斯文档以及何时禁用它之后,我决定我确实需要这样做。有没有办法只为一个特定的测试/测试套件禁用它?我使用的是3.4.1 版本,并且正在设置此配置cypress.json- 因此它对所有测试都是全局的。

有没有办法只为一次测试禁用网络安全?谢谢!

4

2 回答 2

1

原答案:

这对你有用吗?

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”选项。它没有按预期工作。我认为在运行同一个浏览器期间更改此配置可能不起作用,因为这更像是决定何时启动的浏览器功能。在这种情况下,我能想到的只是以不同的配置运行赛普拉斯。

此处的柏树文档显示了执行此操作的明确步骤。希望这可以帮助。

于 2019-09-22T20:31:32.040 回答
0

就我而言,它的工作方式如下。
第一件事是设置chromeWebSecurityfalse

//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);
        });
    });
});
于 2021-07-14T15:34:42.363 回答