Zuerst müssen Sie alle übereinstimmenden Elemente finden, die Vorschläge zur automatischen Vervollständigung darstellen. Da das Erscheinen von Vorschlägen zur automatischen Vervollständigung asynchron ist, müssen Sie darauf warten, dass sie mit einer Schleife oder einem WebDriverWait
angezeigt werden. Die Zeile, die die List<WebElement>
Liste abruft, wird weiterhin versuchen, Elemente zu finden, die mit dem angegebenen Selektor übereinstimmen, und wird nur zurückgegeben, wenn die Liste (aus dem driver.findElements
Aufruf, den sie umschließt) nicht leer ist. Wenn es im angegebenen Timeout keine leere Liste findet (10
Sekunden in diesem Fall vom WebDriverWait
Konstruktor), wird ein TimeoutException
geworfen. Sobald Sie die Liste der Vorschläge haben, ist es eine einfache Sache, einen zufälligen aus dieser Liste auszuwählen und darauf zu klicken.
driver.get("https://www.google.com");
driver.findElement(By.name("q"))
.sendKeys("whi");
List<WebElement> options = new WebDriverWait(driver, 10).until(ExpectedConditions.numberOfElementsToBeMoreThan(By.cssSelector("[role='option']"), 0));
int index = (int) (Math.random() * options.size());
options.get(index)
.click();
Ich versuchte ** element.sendKeys (Keys.Down) ** die das dritte Element in der Liste hervorhebt, aber es hat nicht eventhough() verwendet wird, klicken Sie geklickt. – Durga