Selen element suchen in einer while-Schleife in java
So, ich habe einen selenium webdriver-Befehl, der eine Bedingung für die while-Schleife wie hier gezeigt:
while (driver.findElement(By.cssSelector("a[action='cancel']")).isDisplayed() == true){
driver.navigate().refresh();
TimeUnit.SECONDS.sleep(5);
driver.findElement(By.id("479510558845313")).sendKeys(InstagramAievx.spamusernameinput);
driver.findElement(By.id("263795143794707")).sendKeys(InstagramAievx.spamcommentinput);
driver.findElement(By.id("u_0_4")).sendKeys(x);
driver.findElement(By.id("u_0_5")).click();
}
TimeUnit.SECONDS.sleep(2);
driver.findElement(By.xpath("//a[contains(text(),'Okay')]")).click();
killFirefox();
So, mein problem ist, dass, wenn die Bedingung false ist, überspringt nicht die while-Schleife und gehen Sie zu dem, was unten ist es. Es wird versucht, dies zu tun : driver.findElement(By.cssSelector("a[action='cancel']"))
was macht das Programm fehl. Wie mache ich es überspringen, wenn es falsch und gehen zu dem, was aus der Schleife heraus? Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie behandeln den Fall, wenn das element nicht vorhanden ist, bevor Sie überprüfen, ob es sichtbar:
Ihnen nicht sagen, wie das Programm konnte nicht, aber ich gehe davon aus, dass die angegebenen findElement Rückgabe einer null?
Schlage ich vor, Sie strukturieren Sie Ihre Schleife, so dass Sie so etwas machen (code nicht getestet):
Caused by: org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"css selector","selector":"a[action='cancel']"}
ich werde versuchen, was Sie vorgeschlagen und erhalten Sie zurück.