输入及其属性在Selenium中的动态x路径中不断变化

时间:2017-02-04 14:54:13

标签: selenium xpath selenium-webdriver

我试图找到文本字段用户名密码的x路径,但它会继续动态更改。我无法使用使用x-path的findelement中的starts-withcontains。这是HTML DOM -

      <div id="contents">
          <h1 style="white-space:pre; width:80px; float:left;line-height:35px;">Login</h1>
          <span style="float:left; padding-top:13px; COLOR:#990033; font-weight:bold;">  Student | Parent | Faculty</span>
          <div class="form-elements">
          <div class="form-elements">
          <div class="form-elements">
              <div class="label-txt">Password</div>
              <input id="rcnr2uew1m0rkikeaaniwk" type="password" style="display:none;" name="rcnr2uew1m0rkikeaaniwk"/>
              <input id="ko2xs123ebqyoluh15bulu" type="password" style="display:none;" name="ko2xs123ebqyoluh15bulu"/>
              <input id="cuouek4bfz41etm4hroj0r" type="password" style="display:none;" name="cuouek4bfz41etm4hroj0r"/>
              <input id="u2ta3gv2o2ce0azx5plpuh" type="password" name="u2ta3gv2o2ce0azx5plpuh"/>
              <input id="g03nwjuzhqnkuwgsl4q2mu" type="password" style="display:none;" name="g03nwjuzhqnkuwgsl4q2mu"/>
              <input id="gddwv4z3amojk0yvoxi2v4" type="password" style="display:none;" name="gddwv4z3amojk0yvoxi2v4"/>
              <input id="kxecmkho2vf1vcfb42icjr" type="password" style="display:none;" name="kxecmkho2vf1vcfb42icjr"/>
              <span id="ctl04" style="color:Red;visibility:hidden;">*</span>
         </div>

我试图找到没有风格的输入[4]。

绝对x-path- html / body / form / div [3] / div [1] / div [2] / div [1] / div [1] / div [1] / div [2 ] /输入[4]

下次如何改变 -

绝对x-path- html / body / form / div [3] / div [1] / div [2] / div [1] / div [1] / div [1] / div [2 ] /输入[17]

id的{​​{1}}和name也会在没有任何共同特征的情况下不断变化

2 个答案:

答案 0 :(得分:2)

您可以通过查找显示的Platform.runLater()标签的兄弟,即没有属性User name

来实现

用户名

style="display:none;"

密码

"//div[contains(text(), 'User Name')]/following-sibling::input[not(@style='display:none;')]"

答案 1 :(得分:0)

使用type属性的类似内容:

//input[@type='password'][not(@style)]