我有以下html
<table id="registration">
<tbody>
<tr>
<td class="registration-label"><span class="size13">Password</span>
</td>
<td>
</td>
<td class="form">
<input autocomplete="off" class="title wide-input" name="icgdtval" value="" size="50" maxlength="50" type="password"/>
</td>
</tr>
<tr>
<td class="registration-label"><span class="size13">Email</span></td>
<td></td>
<td><input class="title wide-input" name="hkogplva" value="" maxlength="150" size="26" type="text"/></td>
</tr>
<tr>
<td class="registration-label"><span class="size13">Confirm Email</span></td>
<td></td>
<td><input class="title wide-input" name="EmailB" value="" size="26" maxlength="150" type="text"/></td>
</tr>
</tbody>
</table>
渲染版本如下所示
我正在尝试构建一个xpath,它使用文本框之前的文本来匹配文本框。
例如:构造一个xpath,通过使用Email
作为参考,在Email
前面找到输入标记。我无法找到文本框本身,因为id或名称是动态生成的。
我构建了这个有效的xpath,但是我在使用文本框之前的文本时失败了
//tr[td][3]/td[contains(@class,'registration-label')]/following-sibling::td[2]
答案 0 :(得分:1)
您可以尝试使用following
代替following-sibling
:
//td[.="Password"]/following::input
//td[.="Email"]/following::input
//td[.="Confirm Email"]/following::input
或者如果您仍想使用following-sibling
:
//td[.="Password"]/following-sibling::td/input
//td[.="Email"]/following-sibling::td/input
//td[.="Confirm Email"]/following-sibling::td/input