无法使用后面的同级查找xpath



这是我的示例html代码。我无法找到输入类型="text"的xpath。

注意:我只需要div id的xpath引用。

<div id="PRINTDIV">
    <table id="one"></table>
    <table id="two"></table>
 </div>
 <table>
    <tr>
        <td>
            <input type="button" value="post value" >
        </td>
        <td>
            <input type="text" >
        </td>
    </tr>
 </table>

我使用下面的xpath。

/* [@ id = ' PRINTDIV ']/祖辈::表/tr/td [2]

您在开始时缺少斜杠,需要在tr之前添加额外的斜杠。在检查元素中,我看到了一个额外的tbody标记,虽然我不知道为什么会这样。

"//div[@id='PRINTDIV']/following-sibling::table//tr/td/input[@type='text']"

或者尝试使用CSS

"div[id='PRINTDIV'] + table tr > td > input[type='text']"

为什么不使用表的id直接访问它呢?它是动态生成的id吗?

由于div不是根节点的直接子节点,因此不能通过单个/访问它。您必须提供//以允许selenium解析并在DOM中查找节点。

因此//div应该能够访问元素

最新更新