使用通配符构建XPath以更改字符串

时间:2016-05-26 21:07:50

标签: selenium xpath

我正在尝试为不断变化的属性构建XPath。数字前缀有时会发生变化。

原文:

//*[@id="MainContent_DXEditor3_I"]

我可以使用

查询
$x('//*[@id="MainContent_DXEditor3_I"]

预期用途:我想构建字符串来处理子字符串中的任何数字。示例:如果属性更改为“MainContent_DXEditor33_I”或“MainContent_DXEditor8_IXYZ” - 我仍然希望能够在不重建的情况下找到该元素

2 个答案:

答案 0 :(得分:1)

您可以尝试使用starts-with()

来放宽谓词
//*[@starts-with(@id, "MainContent_DXEditor")]

答案 1 :(得分:0)

您应该尝试识别元素的唯一父级,或者将xpath保存为包含变量的字符串。 这是两种可能的解决方案。

一般选择器将返回多个元素,如果您标识一个唯一的父元素,那么您就更接近,之后如果您有一个列表,则可以选择任何第一个,第二个..最后一个。