【问题标题】:Use Regex with selenium driver tag selectors将 Regex 与 selenium 驱动程序标签选择器一起使用
【发布时间】: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


【解决方案1】:

您可以尝试使用 XPath 包含:

List<WebElement> allElement = driver.FindElements(By.Xpath(".//<define root element here>[contains(@class, 'my-img-')]")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多