我正在使用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,...)
答案 0 :(得分:0)
尝试使用XPath
下面的span
与regex
匹配{/ 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']