2016-10-28 63 views
0

我在通過Java中的selenium列表搜索時遇到困難。無法通過列表搜索硒

我有一個頁面,列出了一堆新聞文章,我希望能夠搜索這個多行和多列表搜索特定的字符串。

我嘗試以下:

Dimension rowcount = driver.findElement(By.xpath(".//*[@id='z_c']/tbody/tr[*]/th/a[1]/strong")).getSize(); 
System.out.println(rowcount); 

此打印出(80,15)在控制檯中。 我試試這個:

List<WebElement> txt = driver.findElements(By.cssSelector("table.d_g.d_g1>tbody>tr")); 
System.out.println(txt.size()); 

,這打印出在控制檯以下:0

林不知道如果我使用cssSelector正確作爲我的語法知識和理解是不好的。

的HTML如下:

<table id="z_c" class="d_g d_gl" summary="List of news items"> 
<tbody> 
<tr class="fgskip" style="visibility:hidden;"> 
<tr class="d_gactr"> 
<tr class="d_gh"> 
<tr> 
<td class="d_gd_sel" style="white-space:nowrap;padding-left:0px;border-bottom:none;"> 
<th class="d_gdb d_ich" scope="row"> 
<a class="vui-link" href="/d2l/lms/news/newedit.d2l?ou=6606&newsId=998&Global=0" title="Edit US Elections"> 
<strong>**US Elections**</strong> 
</a> 
<a id="z_o" class="dcm dcm_handle" role="button" aria-haspopup="true" tabindex="0" title="Actions for US Elections"> 
<span id="z_p" style="display:none;"> 
</th> 
<td class="d_gn d_gc d_gdb" style="padding-right:0.9em;padding-left:0.9em;"> 
<td class="d_gn d_gc d_gdb" style="padding-right:0.9em;padding-left:0.9em;"> 
<td class="d_gn d_gc d_gdb" style="padding-right:0.9em;padding-left:0.9em;"> 
</tr> 
<tr class="d_detailsRow"> 
<td class="d_gd" style="border-right:none"> </td> 
<td class="d_gd" colspan="4"> 
<div id="z_q" class="drt" style="margin-top:0.9em;display: block;"> 
<p>**Elections will start on the 8 November**</p> 
</div> 
<div class="dco" style="margin-top:0.9em;margin-bottom:0.9em;"> 
</td> 
</tr> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 

<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow"> 
<tr> 
<tr class="d_detailsRow d_lastRow"> 
<tr class="d_gactr"> 
</tbody> 
</table> 

我試着去搜索表的新聞標題:

美國大選

和新聞內容:

**選舉將於11月8日開始**

我可以檢索數據:

String getTableValue1 =driver.findElement(By.xpath(".//*[@id='z_c']/tbody/tr[4]/th/a[1]/strong")).getText(); 
String getTableValue2 =driver.findElement(By.xpath(".//*[@id='z_c']/tbody/tr[5]/td[2]")).getText(); 
System.out.println(getTableValue1); 
System.out.println(getTableValue2); 

但是,如果有人能就如何通過這個列表搜索,得到的結果建議將是巨大的。

塔奎

回答

0

我做了以下內容,並將其吸出數據表:

List<WebElement> txt = driver.findElements(By.cssSelector("table.d_g.d_gl>tbody>tr")); 
int total_nodes = txt.size(); 
for(int i =0 ; i< total_nodes; i++) 
{ 
    String subject = txt.get(i).getText(); 
    System.out.println(subject); 
} 

我只是想匹配元素到我的搜索字符串現在