这是html代码:
<div id="listMain" class="listMain">
<table id="listMainTable" class="listTable" >
<thead>
<tbody id="mainTableBody">
<tr id="Node0" class="row" tabindex="0" >
<tr id="Node1" class="alternateRow" tabindex="-1" >
<tr id="Node2" class="row" tabindex="-1" >
<tr id="Node3" class="alternateRow" tabindex="-1" >
<tr id="Node4" class="row" tabindex="-1" >
<td class="cell" >
<td class="cell" >
<div id="detailView_listColumn_4" style="overflow: hidden" aria-describedby="detailView_mainTooltip">TestReport</div>
</td>
<td class="cell" >
<td class="cell" >
<tr id="Node5" class="row" tabindex="0" >
<tr id="Node6" class="alternateRow" tabindex="-1" >
</tbody>
</table>
</div>
我想访问第5行第2列的内容。
我可以通过直接访问给出行和列号的单元格来执行此操作:driver.findElement(By.xpath(&#34; // table [@id =&#39; listMainTable&#39;] / / TR [5] / TD [2]&#34));
但是,我想使用&#34; contains&#34;。
按内容访问单元格我尝试了以下两种方式:
driver.findElement(By.xpath(&#34; // table [@id =&#39; listMainTable&#39;] // tr [contains(td [1],&#39; TestReport&#39; )] / TD [2]&#34));
driver.findElement(By.xpath(&#34; // table [@id =&#39; listMainTable&#39;] / tbody / tr / div [contains(text(),&#39; TestReport&# 39)]&#34));
两者都抛出错误 - 引起:org.openqa.selenium.NoSuchElementException:无法找到元素。
我不知道这是否与&#34; TestReport&#34;被包含在&#34; div&#34;在表格单元格内。在这种情况下,我如何使用&#34; contains&#34;来访问该特定单元格。 ?
答案 0 :(得分:1)
您可以尝试这样的事情
//div[contains(text(),'TestReport')]
谢谢你, 穆拉利
答案 1 :(得分:0)
您的HTML格式不正确。有些标签没有相应的结束标签。
您可以使用以下内容。
driver.findElement(By.xpath("/html/div[@id='listMain']/table[@id='listMainTable']/tbody[@id='mainTableBody']/tr[5]/td[2]/div[contains(text(),'TestReport')]"));
HTML
<html>
<div id="listMain" class="listMain">
<table id="listMainTable" class="listTable" >
<thead/>
<tbody id="mainTableBody">
<tr id="Node0" class="row" tabindex="0" />
<tr id="Node1" class="alternateRow" tabindex="-1" />
<tr id="Node2" class="row" tabindex="-1" />
<tr id="Node3" class="alternateRow" tabindex="-1" />
<tr id="Node4" class="row" tabindex="-1" >
<td class="cell" />
<td class="cell" >
<div id="detailView_listColumn_4" style="overflow: hidden" aria-describedby="detailView_mainTooltip">TestReport</div>
</td>
<td class="cell" />
<td class="cell" />
</tr>
<tr id="Node5" class="row" tabindex="0" />
<tr id="Node6" class="alternateRow" tabindex="-1" />
</tbody>
</table>
</div>
</html>