xpath中的正则表达式

时间:2017-04-24 18:23:47

标签: regex selenium xpath

我正在使用Java和Selenium。 HTML设计师没有提供真正有用的ID。我需要使用以下内容访问元素:

<span id="gridcolumn-1040-textInnerEl" 

我可以用

//span[contains(@id, 'gridcolumn') and (contains(@id, 'textInnerEl'))]

对于xpath但这可能会变得复杂(这是一个更简单的例子)。有没有办法在xpath中使用正则表达式,如下所示:

//span[match(@id, '^gridcolumn-[%d]+-testInnerEl$']

避免多个并包含(@ id,...)

2 个答案:

答案 0 :(得分:0)

尝试使用XPath下面的spanregex匹配{/ 1}}:

//span[matches(@id, '^gridcolumn-\d+-textInnerEl$')]

答案 1 :(得分:0)

三个函数starts-with()substring-before()substring-after()的组合将为您提供选择所需元素的机会:

//span[starts-with(@id, 'gridcolumn') and number(substring-before(substring-after(@id, '-'), '-')) = substring-before(substring-after(@id, '-'), '-') and substring-after(substring-after(@id, '-'), '-') = 'textInnerEl']