No puedo cargar la siguiente URL con Cypress. Obteniendo error de tiempo de espera. He configurado el tiempo de carga de la página en 2 minutos, sigue siendo el mismo problema. URL generales, por ejemplo. ( https://www.google.co.nz/ ) funciona bien.
it('First Test', () => { cy.visit('https://shop.countdown.co.nz/') })Aquí hay una manera, no la mejor, podría mejorarse...
El sitio Countdown tiene aversión a ejecutarse en un iframe, pero se puede probar en una ventana secundaria, vea el comando personalizado aquí Cypress usando una ventana secundaria
Cypress.Commands.add('openWindow', (url, features) => { const w = Cypress.config('viewportWidth') const h = Cypress.config('viewportHeight') if (!features) { features = `width=${w}, height=${h}` } console.log('openWindow %s "%s"', url, features) return new Promise(resolve => { if (window.top.aut) { console.log('window exists already') window.top.aut.close() } // https://developer.mozilla.org/en-US/docs/Web/API/Window/open window.top.aut = window.top.open(url, 'aut', features) // letting page enough time to load and set "document.domain = localhost" // so we can access it setTimeout(() => { cy.state('document', window.top.aut.document) cy.state('window', window.top.aut) resolve() }, 10000) }) })Puede probar con eso así
cy.openWindow('https://shop.countdown.co.nz/').then(() => { cy.contains('Recipes').click() cy.contains('Saved Recipes', {timeout:10000}) // if this is there, have navigated }) Subí el setTimeout() en el comando personalizado a 10 segundos, porque este sitio se arrastra un poco.
Configuración:
// cypress.json { "baseUrl": "https://shop.countdown.co.nz/", "chromeWebSecurity": false, "defaultCommandTimeout": 20000 // see below for better way }Error de tiempo de espera de comando
Usando el comando de ventana secundaria de Gleb, hay un error de tiempo de espera cuya fuente no puedo rastrear.
Para evitarlo, establecí "defaultCommandTimeout": 20000 en la configuración, pero dado que solo es necesario para la llamada de openWindow , es mejor eliminar la configuración global y usar esto en su lugar.
cy.then({timeout:20000}, () => { cy.openWindow('https://shop.countdown.co.nz/', {}).then(() => { cy.contains('Recipes').click() cy.contains('Saved Recipes', {timeout:10000}) // if this is there, have navigated }) })Para verificar si el tiempo de espera del comando largo solo se aplica una vez, rompa uno de los comandos de prueba internos y verifique que se agote en los 4000 ms estándar.
cy.then({timeout:20000}, () => { cy.openWindow('https://shop.countdown.co.nz/', {}).then(() => { cy.contains('Will not find this').click() // Timed out retrying after 4000msLas comillas están mal. Pruebe el siguiente código:
it('First Test', ()=>{ cy.visit('https://shop.countdown.co.nz/') })
Al intentar visitar la URL, aparece el error:
cy.visit() falló al intentar cargar:
Intentamos realizar una solicitud http a esta URL, pero la solicitud falló sin obtener respuesta.
Recibimos este error a nivel de red:
Error: ESOCKETTIMEDOUT
Situaciones comunes por las que esto fallaría:
- no tienes acceso a internet
- se olvidó de ejecutar/arrancar su servidor web
- su servidor web no es accesible
- tiene ajustes de configuración de red extraños en su computadora
Captura de pantalla de error:
Veamos las situaciones comunes en las que esto podría suceder: