java - Selenium - 尝试使用 "contains"通过其内容来定位表格单元格

标签 java selenium xpath webdriver contains

这是 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("//table[@id='listMainTable']//tr[5]/td[ 2]"));

但是,我想使用“包含”通过其内容访问单元格。

我尝试了以下两种方法:

driver.findElement(By.xpath("//table[@id='listMainTable']//tr[contains(td[1], 'TestReport')]/td[2]"));

driver.findElement(By.xpath("//table[@id='listMainTable']/tbody/tr/div[contains(text(), 'TestReport')]"));

两者都会抛出错误 - 原因为:org.openqa.selenium.NoSuchElementException:无法找到元素。

我不知道这是否与表格单元格内的“div”中包含的“TestReport”有关。在这种情况下,我如何使用“包含”访问该特定单元格?

最佳答案

你可以尝试这样的事情

//div[contains(text(),'TestReport')]

谢谢你, 穆拉利

关于java - Selenium - 尝试使用 "contains"通过其内容来定位表格单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35414072/

相关文章:

javascript - xpath 在 javascript 中使用命名空间进行评估的问题

javascript - 无法使用 Selenium 获取元素的文本

Java servlet - 从子页面转发/重定向

Java:无效选择器:指定了无效或非法的选择器

python - 在 Python 中使用 Chromedriver 启用 Flash

selenium - Katalon-将记录的测试脚本导出到Java/Junit

java - 如何让 Selenium 等到特定位置的文本

java - 将 Maven 父 pom/bom (没有 java src)发布到 Nexus 的正确方法是什么

java - 缓冲图像调整大小

java - Java 对象的生命周期