2014-11-02 39 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

相關問題