Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Origem cruzada no carregamento da página

Estou tentando executar um caso de teste no ambiente de homologação e está dando esse erro: Cypress detected a cross origin error happened on page load:

Blocked a frame with origin "https://xxxx" from accessing a cross-origin frame.

Before the page load, you were bound to the origin:

https://xxxx

A cross origin error happens when your application navigates to a new URL which does not match the origin above.

A new URL does not match the origin if the 'protocol', 'port' (if specified), and/or 'host' are different.

Cypress does not allow you to navigate to a different origin URL within a single test.

You may need to restructure some of your test code to avoid this problem.

Alternatively you can also disable Chrome Web Security in Chromium-based browsers which will turn off this restriction by setting { chromeWebSecurity: false } in cypress.config.js.

Poderia me ajudar? desde já agradeço...

6 respostas

Olá, boa tarde Washington Vitor! Tudo certo?

Para verificar... você utilizou 2x o seguinte comando no seu caso de teste?

cy.visit("__")
solução!

Como não tenho acesso ao seu código, vou lhe passar o que acredito ser o erro...

Se tiver usado 2x o cy.visit no mesmo teste para trocar de domínio, o cypress bloqueia, exemplo:

  • Teste inicia no site "alura.com.br"
  • Tenta mudar para o site "google.com.br" (Troca não permitida, pois é um domínio diferente) O Cypress trabalha somente com o mesmo domínio por teste, exemplo:
  • Teste inicia no site "alura.com.br"
  • Tenta mudar para o site "cursos.alura.com.br" (Troca permitida, pois é um subdomínio do "alura.com.br")

Olá Diogo, boa tarde!

Utilizei o cy.visit("_") mas a URL do sistema..... sendo que quando logo no sistema a URL muda de forma automática e quebra o teste....

att,

Entendi... mais não existe nenhuma solução ?

Compreendi, tente inicialmente realizar a configuração passada no erro do Cypress e valide se vai funcionar... Vá no arquivo cypress.config.js e adicione no código o comando chromeWebSecurity: false, exemplo:

const { defineConfig } = require("cypress");

module.exports = defineConfig({
    e2e: {
        setupNodeEvents(on, config) {
            // implement node event listeners here
        },
        //Global
        //Timeouts
        //Folders / Files
        //Screenshots
        //Videos
        //Downloads
        //Browser
        chromeWebSecurity: false,
        //Viewport
        //Actionability
        //e2e
        specPattern: "cypress/e2e/**/*.{js,jsx,ts,tsx,feature}",
        experimentalSessionAndOrigin: true,
    },
});

Qualquer dúvida sigo a disposição!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!