Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

240
Vistas
Webdriver.io: problemas al cambiar a una nueva ventana/pestaña

Estoy usando Webdriver.io/Nodejs/Mocha y cuando trato de cambiar de la pestaña principal a la pestaña secundaria, la mayoría de las veces funciona; sin embargo, hay momentos en que la pestaña tardará mucho en cargarse debido a problemas/anuncios incorrectos en la página y durante esos momentos, aunque obtengo el GUID de la ventana/pestaña, todavía no cambia y permanece en el padre pestaña. No sucede todo el tiempo, pero de vez en cuando no cambia.

¿La página tiene que cargarse por completo para poder cambiar a la pestaña chid? ¿Me estoy perdiendo algo? Cualquier ayuda sería apreciada. ¡Gracias!

  • Versión del nodo: v16.13.1
  • Versión de WebdriverIO: 7.16.12
  • Versión moca: 9.0.0
  • Versión del controlador Chrome: 95.0.0

Ejecución:

 npx mocha --config ./mocharc.json ./test/test.js

Archivo de prueba: test.js

 it('Test Case: Switch Tabs', async () => { let parentGUID; let childGUID; // get parent GUID parentGUID = await this.driver.getWindowHandle(); // click element to launch new tab await this.driver.elementClick('//a[@id="test"]'); // wait until new tab loads await this.driver.pause(2000); // get all GUID's const allGUIDs = await this.driver.getWindowHandles(); // check all GUID's and see which one is the child for (let i = 0; i < allGUIDs.length; i++) { if (allGUIDs[i] !== parentGUID) { childGUID = allGUIDs[i]; } } // switch to child tab await this.driver.switchToWindow(childGUID); // assert content on the new page here // ... // ... // ... // close tab await this.driver.closeWindow(); // switch to parent window/tab await this.driver.switchToWindow(parentGUID); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Esto parece un simple error de codificación. Mientras inicia su parentGUID, no le asigna ningún valor. Luego lo está usando para comparar en su bucle for. A veces, el GUID secundario se asigna con el GUID primario. En este caso, el cambio parece no estar sucediendo. Lo he corregido a continuación.

 it('Test Case: Switch Tabs', async () => { let childGUID; // get parent GUID const parentGUID = await this.driver.getWindowHandle(); // click element to launch new tab await this.driver.elementClick('//a[@id="test"]'); // wait until new tab loads await this.driver.pause(2000); // get all GUID's const allGUIDs = await this.driver.getWindowHandles(); // check all GUID's and see which one is the child for (let i = 0; i < allGUIDs.length; i++) { if (allGUIDs[i] !== parentGUID) { childGUID = allGUIDs[i]; } } // switch to child tab await this.driver.switchToWindow(childGUID); // assert content on the new page here // ... // ... // ... // close tab await this.driver.closeWindow(); // switch to parent window/tab await this.driver.switchToWindow(parentGUID); }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda