无法搜索列表中的selenium

时间:2016-10-28 02:33:12

标签: java list selenium

我在搜索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);

但如果有人可以建议如何搜索这个列表来获得结果,那就太棒了。

塔尔坎

1 个答案:

答案 0 :(得分: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);
}

我只想尝试将元素与我的搜索字符串匹配