【发布时间】:2014-08-28 20:33:27
【问题描述】:
我正在尝试使用正则表达式来匹配在其他可预测字符串中间包含不可预测数字的 id,例如:
<div id="type-84289-model" class="vehicle">
我尝试了各种方法,但似乎最明显的应该是:
By.xpath("//div[matches(@id, 'type-.+-model')]"));
但是没有找到该元素。谁能指出我正确的方向。
【问题讨论】:
-
是 XPath 2 吗?我认为 XPath 1 不支持正则表达式。
-
如果@curiosu 是对的,你可以试试
[starts-with(@id, 'type-') and ends-with(@id, '-model')]。 -
我相信它支持 Xpath 2。根据我对 Selenium 的了解,它归结为您正在测试的浏览器支持什么,我一直在使用 Firefox 31.0。但是,我确实按照@Ciapan 的建议尝试使用 'starts-with' 和 'ends-with',但没有运气......我收到了 InvalidSelectorException 异常。
-
我对 Firefox 支持 XPath 2.0 的暗示感到惊讶。你有这方面的参考吗?
-
我对 Firefox 支持 XPath 2 的假设似乎是错误的。一些谷歌搜索表明 Firefox 确实不支持 2.0。