我正在尝试自动执行Google自动建议,并使用Selenium选择随机建议。

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


如何从Google建议列表中选择随机建议?

最佳答案

首先,您需要找到代表自动完成建议选项的所有匹配元素。由于自动完成建议的出现是异步的,因此您需要等待使用循环或WebDriverWait出现它们。获取List<WebElement>列表的行将继续尝试查找与给定选择器匹配的元素,并且仅在列表(来自其包装的driver.findElements调用)不为空时返回。如果在给定的超时时间内未找到非空列表(本例中为10构造器,则为WebDriverWait秒),则会抛出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();

10-02 06:53
查看更多