ปิดการใช้งานความปลอดภัยของเว็บใน Cypress สำหรับการทดสอบเพียงครั้งเดียว

หลังจากอ่านเอกสารประกอบของ 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} ดังนั้นในการทดสอบของฉันจึงเปลี่ยนการตั้งค่าเป็นจริงด้วย Cypress.config('chromeWebSecurity',true); - person Jasp402; 08.06.2021
comment
@ Jasp402 คุณช่วยอธิบายอย่างละเอียดได้ไหม ฉันมี {"chromeWebSecurity": false} ใน cypress.json ของฉันและพยายามสลับการตั้งค่าสถานะด้วย Cypress.config('chromeWebSecurity', true); ทั้งใน context หรือ it โดยไม่สำเร็จ - person Édouard Lopez; 13.07.2021

ในกรณีของฉันมันทำงานดังนี้
สิ่งแรกคือการตั้งค่า chromeWebSecurity เป็น false

//cypress.json 
{
"chromeWebSecurity": false
}

สิ่งที่ฉันทำคือ a ก่อนกำหนดให้กับ 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