Saltar al contenido

En Selenium Webdriver, ExpectedCondition.elementToBeClickable no espera hasta que desaparezca la barra de progreso

No dejes de compartir nuestro espacio y códigos en tus redes, necesitamos tu ayuda para ampliar esta comunidad.

Solución:

ExpectedConditions.elementToBeClickable devuelve el elemento si la condición será true significa que devuelve el elemento si el elemento aparece en la página y se puede hacer clic en él. No es necesario volver a encontrar este elemento, simplemente omita la última línea como se muestra a continuación: –

//Click on Create Account btn:
driver.findElement(By.id("createAccount")).click();

//Wait till "Cancel" button is showing up. At cases, it may take some time.
WebElement el = myWaitVar.until(ExpectedConditions.elementToBeClickable(By.id("cancelRegister")));
el.click();

Editado1 :- Si no puede hacer clic debido a otro elemento, haga clic en recibir, puede usar JavascriptExecutor para realizar haga clic de la siguiente manera:

//Click on Create Account btn:
driver.findElement(By.id("createAccount")).click();

//Wait till "Cancel" button is showing up. At cases, it may take some time.
WebElement el = myWaitVar.until(ExpectedConditions.elementToBeClickable(By.id("cancelRegister")));
((JavascriptExecutor)driver).executeScript("arguments[0].click()", el); 

Editado2 :- Parece que la excepción proporcionada, la barra de progreso aún se superpone en cancelRegister botón. Entonces, la mejor manera es esperar primero a que la barra de progreso se vuelva invisible y luego esperar a que se vuelva visible. cancelRegister botón de la siguiente manera:

//Click on Create Account btn:
driver.findElement(By.id("createAccount")).click();

//Now wait for invisibility of progress bar first 
myWaitVar.until(ExpectedConditions.invisibilityOfElementLocated(By.id("page_loader")));

//Now wait till "Cancel" button is showing up. At cases, it may take some time.
WebElement el = myWaitVar.until(ExpectedConditions.elementToBeClickable(By.id("cancelRegister")));
el.click();

Espero que funcione…:)

Puede esperar allí para asegurarse de que la barra de progreso desaparezca.

Wait wait = new FluentWait(driver)
   .withTimeout(30, SECONDS)
   .pollingEvery(5, SECONDS)
   .ignoring(NoSuchElementException.class);

WebElement foo = wait.until(new Function() 
 public WebElement apply(WebDriver driver) 
   return (driver.findElements(By.id("progressbar")).size() == 0);
 
);

Te mostramos las reseñas y valoraciones de los lectores

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *