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);
);