2016-10-28 65 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); 
} 

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