Отключите веб-безопасность в Cypress только для одного теста

После прочтения документации по веб-безопасности и когда отключить его, я решил, что мне действительно нужно это сделать. Есть ли способ отключить это только для одного конкретного набора тестов/тестов? Я использую версию 3.4.1, и эта конфигурация устанавливается в cypress.json, поэтому она глобальна для всех тестов.

Есть ли способ отключить веб-безопасность только для одного теста? Спасибо!


person DurkoMatko    schedule 22.09.2019    source источник


Ответы (2)


Исходный ответ:

Это работает для вас?

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». Это не сработало, как ожидалось. Я думаю, что изменение этой конфигурации может не работать во время работы того же браузера, поскольку это больше похоже на функцию браузера, которая определяет время запуска. В этом случае я могу думать только о том, чтобы запускать Cypress с разными конфигурациями.

Документ Cypress здесь показывает четкие шаги для этого. надеюсь это поможет.

person Pigbrainflower    schedule 22.09.2019
comment
Ух ты! Сегодня вечером попробую и отпишусь. Благодарность! - person DurkoMatko; 23.09.2019
comment
Спасибо за ваше время, но, похоже, это не работает :/ Я все еще получаю сообщение об ошибке перекрестного происхождения. Если я отключу его с помощью cypress.json, я больше не получаю ошибку. - person DurkoMatko; 23.09.2019
comment
Извините, что у меня нет действительного URL для проверки. Я думаю, вы правы. Конфиг изменен, но не применяется на работающем кипарисе. Я не нашел идеального способа сделать это. Я обновил свой ответ только для обходного пути. Пожалуйста, дайте мне знать, если у вас есть лучшее решение. Спасибо. - person Pigbrainflower; 24.09.2019
comment
Большое спасибо за твою помощь. Я пойду в указанном вами направлении (несколько файлов конфигурации). Вас устроит, если я не приму ответ, поскольку мы не нашли решения, позволяющего отключить веб-безопасность на лету только для одного теста? Может быть, кто-то придет в будущем, и как только это станет возможным, и ответит на него... Не знаю, как действуют правила SO в таком сценарии. - person DurkoMatko; 25.09.2019
comment
В моем случае это если работает. но мне нужно установить файл cypress.json с помощью {"chromeWebSecurity": false}, поэтому в моем тесте измените настройку на true с помощью Cypress.config('chromeWebSecurity',true); - person Jasp402; 08.06.2021
comment
@ Jasp402 Jasp402, не могли бы вы уточнить, у меня есть {"chromeWebSecurity": false} в моем cypress.json, и я безуспешно пытаюсь переключить флаг с помощью Cypress.config('chromeWebSecurity', true); либо в context, либо в it. - person Édouard Lopez; 13.07.2021

В моем случае это работало следующим образом.
первым делом нужно было установить 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);
        });
    });
});
person Jasp402    schedule 14.07.2021
comment
Другой комментарий предлагает то же самое, если я не ошибаюсь, или? Я пробовал это тогда, и это не сработало. Но времена могли измениться: D Спасибо за ваше время! :) - person DurkoMatko; 14.07.2021