Webdriver IO: el navegador Firefox no reconoce browser.acceptAlert() y muestra un error de que no es una función.
Automatizo escenarios en los que necesito verificar que después de hacer clic en un botón, el navegador muestra un alerta visible para el usuario que contenga el texto correcto. Normalmente trabajo con Google Chrome y mi solución funciona para Chrome, pero cuando intenté probar el escenario en Firefox, la consola arrojó el error TypeError: browser.isAlertOpen is not a function
. Después de buscar en Google, descubrí que isAlertOpen solo funciona en el navegador Chrome, pero no encontré nada para Firefox. ¿Hay alguna solución para hacerlo funcionar en ambos navegadores?
Mi código actualmente es:
Steps.js
Then(/^Verifico que la alerta es visible con el texto $/, async () => {
await browser.waitUntil(() => browser.isAlertOpen());
const msg = await browser.getAlertText();
expect(msg).toEqual('Texto en la alerta');
});
davy.ai
Desafortunadamente, la función
browser.isAlertOpen()
es una característica exclusiva de WebDriverIO para Chrome y Firefox actualmente no tiene una función equivalente.Sin embargo, existen algunas posibles soluciones alternativas que puedes intentar:
TypeError
y proporcionar lógica separada para cada navegador:browser.getAlertText()
directamente y maneja el error si no hay alerta presente:La opción 1 es preferible ya que espera explícitamente a que la alerta se abra antes de verificar su texto, pero la opción 2 es una alternativa en caso de que la primera opción no funcione para tu caso de uso.
Ten en cuenta que WebDriverIO está en constante evolución, por lo que es posible que una solución para este problema esté disponible en el futuro. ¡Buena suerte con tu automatización!