2016-07-25 12 views
1

Ich versuche Google Auto Vorschlag zu automatisieren und einen zufälligen Vorschlag mit Selenium auswählen.Selenium Google Places Autocomplete Java

WebElement element = driver.findElement(By.xpath("//input[@id='id_address']")); 
element.sendKeys(“whi”); 

Wie wählt man einen zufälligen Vorschlag aus der Liste der Google-Vorschläge aus?

+0

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

Antwort

1

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(); 
+0

So wählen Sie den Ort aus der angezeigten Liste aus. Was sollte für Rolle und Option von cssSelector gegeben werden? Ich kann den X-Pfad der Google Places-Liste nicht abrufen. Bitte lassen Sie mich wissen, wo ich falsch gehe – Durga

+0

Ich bin mir nicht sicher, was Sie fragen. Für normale Google-Suche Auto-Vorschläge sollte der Code, den ich gepostet habe, funktionieren. Wenn es nicht für Sie ist, klicken Sie mit der rechten Maustaste auf einen der Vorschläge, die Sie sehen, und prüfen Sie sie in der Entwicklerkonsole Ihres Browsers. Wenn Sie sich die DOM-Elemente ansehen, können Sie die richtigen Locators finden. –