java - 如何使用 Selenium 选择不同的元素?

标签 java javascript selenium selenium-webdriver

我最近不得不开始使用 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("&nbsp","");
                       arr_ships.add(ships);

                   dwt = table.select("td:eq(3)").get(i).text().replace("&nbsp","");
                       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/

相关文章:

java - Thymeleaf 选择标签导致异常

javascript - 输入按钮使用 svg 而不是文本

java - NFC 与 ACR122U 和 Android

Java-重定向请求

javascript - vuejs2 动态 CSS 与动态 HTML

javascript - 将文本分割为第一个 ";",然后再次分割为第二个 ";"

javascript - 通过 Selenium Webdriver 中的 Java Script Executor 传递复杂的 xpath

java - 机器人类 - KeyEvent 无法将文档上传到 Windows 文件夹 KeyEvent.VK_V

java - 如何使用 ionic 和 appium 选择 <div>

java - 检查两棵树是否相同