我有一个场景,在span标签内我有两个字符串,由img标签分隔。
<span>
text
<img/>
text
</span>
当我尝试使用selenium和Xpath找到此跨度时,我找到了它 - 但是span元素的getText()
方法返回"texttext"
。我的目的是获得"text text"
。
driver.findElement(By.xpath("MY_XPATH_TO_FIND_THAT_SPAN").getText();
我的Xpath很好(因为我得到了正确的网页元素,但是我怎么能得到我在这里注意到的字符串?我想在有img标签时附加一个空格。
很高兴为您提供帮助,
谢谢!
答案 0 :(得分:1)
使用.getText()
没有直接的方法。您可以使用.getAttribute("innerHTML")
,然后您需要用空格替换两个“文本”字符串(IMG
等)之间的任何内容。
这是一个基于HTML的简单示例,可能会有效。
String s = driver.findElement(By.xpath("MY_XPATH_TO_FIND_THAT_SPAN").getAttribute("innerHTML"); // <span>text<img/>text</span>
s = s.replaceAll("<img.*?/>", " ");
System.out.println(s);
打印
<span>text text</span>
答案 1 :(得分:1)
要从第一个子节点检索文本文本,从第三个子节点检索文本文本,您可以使用 getAttribute("innerHTML")
方法,然后使用split()
方法,最后打印文本文本,在它们之间插入一个空格,如下所示:
String my_string = driver.findElement(By.xpath("MY_XPATH_TO_FIND_THAT_SPAN")).getAttribute("innerHTML");
String[] stringParts = my_string.split("\n");
String partA = stringParts[0];
String partB = stringParts[2];
System.out.println(partA + " " + partB);