我試圖自動化Google自動建議並選擇使用Selenium的隨機建議。Selenium Google Places自動完成Java
WebElement element = driver.findElement(By.xpath("//input[@id='id_address']"));
element.sendKeys(「whi」);
如何從Google建議列表中選擇隨機建議?
我試圖自動化Google自動建議並選擇使用Selenium的隨機建議。Selenium Google Places自動完成Java
WebElement element = driver.findElement(By.xpath("//input[@id='id_address']"));
element.sendKeys(「whi」);
如何從Google建議列表中選擇隨機建議?
首先,您需要找到所有表示自動完成建議選項的匹配元素。由於自動完成建議的出現是異步的,因此您需要等待它們使用循環或WebDriverWait
顯示。獲取List<WebElement>
列表的行將繼續嘗試查找與給定選擇器匹配的元素,並且僅當列表(來自調用的driver.findElements
調用)不爲空時纔會返回。如果在給定的超時時間內(構造函數中的10
秒)未找到非空列表,它將拋出一個TimeoutException
。然後,一旦你有了建議清單,只需從該清單中選擇一個隨機清單並單擊它即可。
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();
如何從列表顯示中選擇地點。應該給cssSelector的角色和選項提供什麼?我無法獲取谷歌地點列表的xpath。請讓我知道我哪裏錯了 – Durga
我不知道你在問什麼。對於經常谷歌搜索自動建議,那麼我發佈的代碼應該工作。如果它不適合您,請右鍵單擊您看到的任何建議,並在瀏覽器的開發人員控制檯中檢查它們。通過查看DOM元素,您可以找出要使用的正確定位器。 –
我試圖 ** element.sendKeys(Keys.Down)** 這凸顯在列表中的第三項但它沒有獲得點擊eventhough點擊()被使用。 – Durga