selenium - redirigir - redireccionar pagina web
Cómo hacer que Selenium espere a que una página de transición se redirija antes de ejecutar una aserción (4)
Tengo una situación bastante estándar: haga clic en un botón, carga una página de transición con una barra de progreso o algo así, y luego esa página se redirige a la página siguiente, lo que demora un poco en cargarse.
Quiero ejecutar afirmaciones en la página final, no en la página de transición. ¿Cómo le digo a Selenium IDE que espere hasta que se cargue la página final antes de realizar las aserciones?
Gracias.
Para agregar al enfoque de John, puede usar el mecanismo de espera de Selenium para verificar que los elementos en su página final estén presentes así:
Java:
WebDriverWait wait = new WebDriverWait(webDriver, 10); //seconds
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("foo)));
Rubí:
wait = Selenium::WebDriver::Wait.new(:timeout => 10) # seconds
wait.until { driver.find_element(:id => "foo") }
Esto seguirá correctamente cualquier redirección involucrada.
Ejemplo de https://code.google.com/p/selenium/wiki/RubyBindings
Puedes llamar a wait_for_page dos veces seguidas. El primero espera la redirección, el segundo espera la página final.
También puede esperar hasta que el título de la página sea un valor esperado:
$driver->wait()->until(WebDriverExpectedCondition::titleIs(''New page title from redirect''));
Un enfoque simple sería esperar algún texto "particular" en esa página final, vea el comando "waitForText" para obtener más información al respecto