XPath 文本/替换以查找可能包含软连字符的文本

Posted

技术标签:

【中文标题】XPath 文本/替换以查找可能包含软连字符的文本【英文标题】:XPath text/replace to find text which may contain soft-hyphen 【发布时间】:2021-02-26 13:03:21 【问题描述】:

搜索文本:Bescheinigungen 我的 XPath 还应该返回包含软连字符的元素,例如:Beschei\u00ADnigungen

我试过了:

//*[text()[replace(., "\u00AD", "")="Bescheinigungen"]]

不起作用。需要一些帮助,请。

【问题讨论】:

【参考方案1】:

好的,必须使用一些“帮助”代码才能使其工作:

public static WebElement findByText(WebDriver driver, String text) 
  List<WebElement> elements = driver.findElements(By.xpath("//*[text()]"));
  return elements.stream().filter(element -> 
    String elementText = element.getText();
    if (elementText != null && !elementText.isEmpty()) 
      return text.equals(elementText.replace("\u00AD", ""));
    
    return false;
  ).findFirst().orElseThrow(NotFoundException::new);

【讨论】:

以上是关于XPath 文本/替换以查找可能包含软连字符的文本的主要内容,如果未能解决你的问题,请参考以下文章

XPath:在进行翻译和规范化空间时查找包含精确文本的元素

如何使用 XPath 选择带有引号字符的文本?

我们如何在匹配两个文本文件时查找和替换单词?

如何在打印(xpath)之前检查文本是不是包含特定字符?

VBA 查找/替换和文本颜色更改

XPath / XQuery:在节点中查找文本,但忽略特定后代元素的内容