使用Selenium IDE匹配具有随机ID的元素

时间:2012-07-19 09:58:59

标签: selenium selenium-ide

我是Selenium的新人。我无法捕获id值,因为每次刷新 id=ClientAgreements_863f4ace-84fb-4dbb-bb8c-7d7835ceaec9__AgreementType

时值都会重新生成
<td>select</td>
<td>id=ClientAgreements_863f4ace-84fb-4dbb-bb8c-7d7835ceaec9__AgreementType</td>
<td>label=New</td>

2 个答案:

答案 0 :(得分:2)

如果ClientAgreements或AgreementType文本已修复,则可以尝试

//div[contains(@id,'ClientAgreements')]
//div[contains(@id,'AgreementType ')]

答案 1 :(得分:1)

如果id一直在变化,那么通过id查找元素可能不是一个好主意。您需要提出一个始终稳定的位置策略。

正如Rohit Ware所说,如果id中的ClientAgreements和/或AgreementType足够,你可以通过XPath找到它:

xpath=//*[contains(@id,'ClientAgreements')]
xpath=//*[contains(@id,'AgreementType')]
xpath=//*[contains(@id,'ClientAgreements') and contains(@id,'AgreementType')]

如果没有,请寻找元素的其他独特品质。是否有name属性或唯一类?它始终是具有特定属性的页面上的第一个(第二个,第三个?)元素吗?它是否包含任何特定文本?它是一个容易找到的元素的孩子吗?

如果您希望我们为您提供帮助,请向我们展示该元素的HTML代码 - 如果您认为它是相关的,您也可以添加一些周围的元素。我们将提出一个解决方案,但您必须以任何方式查看CSS选择器和/或XPath,以便下次自己能够解决它。

如果您想帮助自己,Google CSS Selectors tutorialsXPath tutorials并取一个。