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

时间:2019-08-21 10:43:08

标签: selenium selenium-webdriver xpath chropath

我正在尝试为以下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]]

2 个答案:

答案 0 :(得分:0)

for(var i=0;i<x.length;i++){ var currentStr = x[i]; var currentInterestedPart = /(.+)=(.+)/.exec(currentStr)[1]; var replacePart = /(.+)=(.+)/.exec(currentStr)[2]; for(var j=0;j<y.length;j++){ if(!y[j].startsWith(currentInterestedPart)) {continue;} var innerReplacePart = /(.+)=(.+)/.exec(y[j])[2]; x[i] = currentStr.replace(replacePart,innerReplacePart);break; } } 标签用于定义换行符。因此,文本不在string_list = ["o1", "o2", "o1", "o1", "o3", "o2"] value_list = [5, 6, 7, 8, 14, 47] result = {k:0 for k in string_list} for k, v in zip(string_list, value_list): result[k] += v print(result) 标记内。

要回答您的问题,如果您特别想获取带有<br/>标签的文本,则可以使用参考号。例如 <br/>在这里,<br/>是指文本第2行,依此类推。

答案 1 :(得分:0)

我认为您无法从<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中实施。

输出控制台:

console