无法使用Xpath定位UI元素?

时间:2012-08-03 06:10:49

标签: selenium

我正在尝试使用selenium定位UI文件,但Xpath正在动态地改变evrytime 这是来源

<div id="tab-1080" class="x-tab x-box-item x-tab-default x-top x-tab-top x-tab-default-     top x-noicon x-tab-noicon x-tab-default-noicon x-active x-tab-active x-tab-default-active x-top-active x-tab-top-active x-tab-default-top-active" style="margin: 0px; left: 406px; top: 0px;">
<em id="tab-1080-btnWrap" class="">
<button id="tab-1080-btnEl" class="x-tab-center" autocomplete="off" role="button"  hidefocus="true" type="button">
<span id="tab-1080-btnInnerEl" class="x-tab-inner" style="">Report Center</span>
<span id="tab-1080-btnIconEl" class="x-tab-icon x-hide-display"> </span>
</button>
</em>
</div>

我需要找到这个唯一但是id 1080不断改变evreytime?任何人都可以帮助找到如何使用范围ID“报告中心”找到,因为这是区分我的网页中此按钮的唯一属性。

3 个答案:

答案 0 :(得分:0)

您可以使用

//span[text()='Report Center']

答案 1 :(得分:0)

就个人而言,我会使用css:它们比xpath更快,并且通常被社区认为是优越的,我也认为如果你做一些研究,它们也更容易使用。

http://sauceio.com/index.php/2010/01/selenium-totw-css-selectors-in-selenium-demystified/

span.x-tab-inner ==> finds the element by its class
span[id*=btnInnerEl]` ==> finds element by a partial piece (substring) of the id

答案 2 :(得分:0)

有多种方式;我可以建议这些(当时进入我的脑海):

  1. "//span[contains(text(), 'Report Center')]"

  2. "//span[contains(@id, 'btnInnerEl')]"

  3. "//span[contains(text(), 'Report Center') and contains(@id, 'btnInnerEl')]"