【问题标题】:Construct xpath using following-sibling?使用跟随兄弟构建 xpath?
【发布时间】:2017-11-04 20:13:05
【问题描述】:

我有以下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,它使用文本框之前的文本来匹配文本框。

例如:使用Email 作为参考,构造一个可以在Email 前面找到输入标签的xpath。我找不到文本框本身,因为 id 或名称是动态生成的。

我已经构建了这个有效的 xpath,但我未能使用文本框之前的文本使其工作

//tr[td][3]/td[contains(@class,'registration-label')]/following-sibling::td[2]

【问题讨论】:

    标签: html xpath


    【解决方案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
    

    【讨论】:

    • 无论您使用哪一个,我都倾向于添加[1],这样您就只会得到“立即关注”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    相关资源
    最近更新 更多