如何为 <br> 标签中包含的文本编写 xpath?

How to write xpath for the text enclosed in the <br> tags?

我正在尝试为下面的 html 代码的 'br' 标签内的文本编写 xpath。当我试图通过 'chropath'(chrome 的插件)突出显示 xpath 时,它显示“0 个元素匹配”。请帮我解决这个问题。

<div class="abc" style="">Line1. 
<br>Line2: 
<br>Line3
<br>Line4
<br>
<br> Line5
</div>

我试过的 xpath

//div[contains(text(),'Line1')]/text()[following-sibling::node()[1][self::br]]

<br/> 标签用于定义换行符。所以文本不在 <br/> 标签内。

为了回答您的问题,如果您特别想获得后跟 <br/> 标记的文本,您可以使用参考编号。例如 (//div[contains(text(),'Line1')]/text())[2] 在这里,[2] 将引用文本 第 2 行 等等。

我认为您无法从 <br/> 标记中获取文本,它是换行符。因此,在您的情况下,您可以使用 xpath : //*[@class='abc'] 获取所有文本。但是如果你想每行获取文本,可能需要尝试:

WebElement elemnt = driver.findElement(By.xpath("//*[@class='abc']"));

String lines[] = elemnt.getText().split("\r?\n");
for(String line: lines) {
    System.out.println("line :" +line);
}

java.

中实施

输出控制台: