0

我正在尝试使用 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“报告中心”进行定位,因为这是在我的网页中区分此按钮的唯一属性。

4

3 回答 3

0

您可以使用

//span[text()='Report Center']
于 2012-08-03T06:39:56.163 回答
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
于 2012-08-03T08:19:11.073 回答
0

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

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

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

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

于 2013-10-21T12:59:53.630 回答