我最近不得不开始使用 Selenium,因为我抓取的网站已更新为 javascript,在此处寻求一些建议后,推荐使用 Selenium 作为这种情况下的首选程序。
使用 Selenium,我现在可以抓取网站并“大致”得到我想要的内容,但我想要一些关于如何选择抓取表格时收集的不同元素的指导。 例如,当我使用 J-Soup 收集数据时,我得到整个表,如下所示:
docVTS = Jsoup.connect("http://********************").timeout(10000).get();
Elements table = docVTS.select("table.dynlist");
然后我可以像这样收集该表的不同部分:
Elements number = table.select("td:eq(0)");
vtsInt = number.size();
for (int i = 0; i < vtsInt; i++) {
ships = table.select("td:eq(1)").get(i).text().replace(" ","");
arr_ships.add(ships);
dwt = table.select("td:eq(3)").get(i).text().replace(" ","");
arr_dwt.add(dwt);
Selenium 是否可以做同样的事情?
我目前有:
String text = driver.findElement(By.xpath("//div[@id='cphBody_Report_grid']")).getText();
这得到了表格,但我不确定如何像在 j-soup 中那样选择表格的不同部分。 我欢迎任何建议。谢谢。
编辑:我发现了这本关于 Selenium 和选择器的 CookBook,并发现它在开始使用 selenium 时非常有用:https://www.simple-talk.com/dotnet/.net-framework/xpath,-css,-dom-and-selenium-the-rosetta-stone/
最佳答案
回答问题。是的,这是可能的。
获取表格行tds
List<WebElement> rowData = findElements(By.cssSelector("table tr td"));
For (WebElement we : rowData) {
//do something with the tds
}
关于java - 如何使用 Selenium 选择不同的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26705372/