我试图自动化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