Estamos utilizando Selenium con la API de Java y algunas extensiones de usuario de Javascript. Usamos muchas llamadas AJAX en nuestra aplicación. Muchas de nuestras pruebas fallan aleatoriamente porque a veces las llamadas AJAX terminan más despacio que otras veces, por lo que la página no está completamente cargada. Arreglamos eso esperando elementos específicos o Thread.sleep. Estaba tratando de encontrar una manera de esperar a que terminara el tráfico de la red. Para que pudiéramos hacer esto:Selenium - Espere tráfico de red
selenium.click("some JS button");
selenium.waitForNetwork();
assertTrue(something);
De esta manera podemos deshacernos del sueño hilo y tienen pruebas pasan más rápido cuando el servidor responde más rápido y no tener tantas pruebas fallan debido a cuestiones de tiempo.
No he podido encontrar la forma de hacer esto buscando en Google. ¿Alguien tiene alguna idea de cómo podemos lograr esto? (Preferiblemente a través de Javascript o la API de Java pero todas las sugerencias son bienvenidas).
Nota: las otras variaciones de "waitFor" no son lo que estoy buscando. Ya estamos usando esos en clics y otras cosas. Estoy buscando algo que espere el TRÁFICO DE RED. Gracias por todos los comentarios, voy a probar algunas de las sugerencias, pero todavía estoy abierto a otras ideas.
Gracias.
Hacemos lo mismo para nuestro framework AJAX construido en casa, llamando a la función IsTheCountZeroYet() en un WaitForCondition(). Entiendo que puedes hacerlo con jQuery fácilmente. Otros marcos, tal vez también. –
Lo interesante es que los contadores ajax en prototype.js tienen errores, no siempre regresan a 0.Y los efectos visuales aún no tienen este tipo de contador. Así que tuvimos que rodar el nuestro. – krosenvold