【发布时间】:2020-10-03 19:36:54
【问题描述】:
我正在尝试配置一个正则表达式来查找具有此类属性的所有元素。 HTML 标记类似于:
<img class="my-img-12">
最近的 2 个数字总是不同的。 我尝试了这些方法,但似乎没有一个可以工作:
List<WebElement> allElement = driver.findElements(By.cssSelector("img[class^='my-img-\\d{1,}']"));
或
List<WebElement> allElement = driver.findElements(By.xpath(".//img[starts-with(@class, 'my-img-') and 'my-img-' = translate(@class, '0123456789', '') and string-length(@class) > 1])"));
这里建议了最新的选项:Stack question
如果你正在考虑这个:
List<WebElement> allElement = driver.findElements(By.cssSelector("img[class^='my-img-']"));
这是行不通的,因为可能有这样的一些属性:
<img class="my-img-wordsOccurrences">
【问题讨论】:
-
可能是这样的 img[matches(class,"^(my-img-)\d{1,}")] 。
标签: java selenium css-selectors tags