如何为动态ID编写XPath?

时间:2015-12-26 12:42:23

标签: html xml xpath

如何为具有不断变化的id属性的元素编写XPath?

HTML片段:

<input type="text" placeholder="Enter Mobile Number or Name" id="CCTFTW" name="CCTFTW" 
       onfocus="javascript:show('contacts');" class="ui-autocomplete-input" 
       autocomplete="off">

这次idCCTFTW,但动态变化。

2 个答案:

答案 0 :(得分:0)

此XPath将选择input属性为placeholder的{​​{1}}元素,无论其Enter Mobile Number or Name的当前值如何:

id

如果您需要//input[@placeholder = 'Enter Mobile Number or Name'] 元素的id属性:

input

答案 1 :(得分:0)

如果我恢复:

  • 您有一个想要找到的标签(并获取内部数据);

  • 内部有趣的索引,但总是在改变:所以它实际上不是你的索引;

  • 具有其他属性,稳定但无意义,而且是为UI制作的。

结论:你不能依赖任何东西。

解决方案:

  • 如果你无法控制这个xml(html?)的制作,你将无法信任。您可以尝试使用占位符进行选择,但不确定:
像那样:

//input[@placeholder='Enter Mobile Number or Name']
  • 如果您可以控制它:

1将另一个非常稳定的参数放入其中:例如

<input type="text" my_field="mobile_zone"

2用xpath获取它

//输入[@ my_field = 'mobile_zone']