我试图获得每个搜索结果的链接(最好是url、标题和描述((没有网站链接、视频、子元素等(,但由于谷歌页面元素和属性的动态特性,没有成功。
这是我设法得到的最接近的:
driver.get(https://www.google.com/search?q=selenium);
List<WebElement> elements = driver.findElement(By.id("rso")).findElements(By.xpath("//div[@class='g']"));
for(WebElement element: elements){
System.out.println(element.getText()); //getText() is used here for demonstration purposes
}
我认为关键部分是xpath语法,因此可以随意发布其他编程语言的解决方案。提前谢谢。
请在搜索页面上的元素之前添加显式等待,因为正如您所看到的,浏览器没有捕获到所有元素。例如,如果元素是可见的,它会减少等待
WebElement explicitWait = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.id("element-locator-id")));