Selenium: cómo esperar hasta que la página se cargue por completo [duplicar]

Esta pregunta ya tiene una respuesta aquí:

Espere a que se cargue la página en Selenium 45 respuestas

Estoy tratando de automatizar algunos casos de prueba usando Java y Selenium WebDriver. Tengo el siguiente escenario:

Hay una página llamada 'Productos'. Cuando hago clic en el enlace 'Ver detalles' en la página 'Producto', aparece una ventana emergente (cuadro de diálogo modal) que contiene los detalles del artículo.Cuando hago clic en el botón 'Cerrar' en la ventana emergente, la ventana emergente se cierra y la página se actualiza automáticamente (la página se está recargando, el contenido permanece sin cambios).

Después de cerrar la ventana emergente, debo hacer clic en el botón 'Agregar elemento' en la misma página. Pero cuando WebDriver intenta encontrar el botón 'Agregar elemento', si la velocidad de Internet es demasiado rápida, WebDriver puede encontrar y hacer clic en el elemento.

Pero si Internet es lento, WebDriver encuentra el botón antes de actualizar la página, pero tan pronto como WebDriver hace clic en el botón, la página se actualiza yStaleElementReferenceException ocurre.

Incluso si se utilizan diferentes esperas, todas las condiciones de espera se vuelven verdaderas (ya que el contenido de la página es el mismo antes y después de la recarga) incluso antes de que la página se vuelva a cargar yStaleElementReferenceException ocurre.

El caso de prueba funciona bien siThread.sleep(3000); se usa antes de hacer clic en el botón 'Agregar elemento'. ¿Hay alguna otra solución para este problema?

Respuestas a la pregunta(5)

Su respuesta a la pregunta