2014-11-02 42 views
1

我不得不开始使用Selenium作为一个网站,我爬了已更新为JavaScript,在寻求一些建议后,硒在这种情况下被推荐为选择的程序。如何使用硒选择不同的元素?

使用Selenium我现在可以抓取网站并“大致”得到我想要的,但我希望获得关于如何选择我在抓取表格时收集的不同元素的指导。 例如,当我使用J-汤来收集数据,我得到了整个表所示:

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-汤做的,我可以如何选择表的不同部分。 我欢迎任何建议。谢谢。

编辑:我发现这个食谱的硒和一般的选择,并发现它有用,而硒启动时:https://www.simple-talk.com/dotnet/.net-framework/xpath,-css,-dom-and-selenium-the-rosetta-stone/

+0

为什么不使用Jsoup解析,等你以后浏览的页面与硒(如果你已经熟悉Jsoup?)的答案 – user2272115 2014-11-03 00:16:01

回答

1

要回答这个问题。是的,这是可能的。

获取表行TDS

List<WebElement> rowData = findElements(By.cssSelector("table tr td")); 

For (WebElement we : rowData) { 
    //do something with the tds 
} 
+0

谢谢,我有同时能够逐个单元格选择表格数据单元,但是您是否知道如何选择每个单元格的单个内容?我更新了我的问题,谢谢。认为,我会问一个新问题。 – 2014-11-04 21:05:03

+0

对元素调用.text()会返回字符串作为td中的文本 – bcar 2014-11-04 22:41:26

相关问题