我正在尝试自动执行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();