有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如果它们之间有img标记,则在span内拆分文本

我有一个场景,在一个span标记中有两个字符串,由一个img标记分隔

<span>
    text
    <img/>
    text
</span>

当我试图使用selenium和Xpath查找这个span时,我找到了它-但是span元素的getText()方法返回了"texttext"。我的目的是得到"text text"

driver.findElement(By.xpath("MY_XPATH_TO_FIND_THAT_SPAN").getText();

我的Xpath很好(因为我得到了正确的web元素,但是我怎么才能得到我在这里提到的字符串呢?每当有img标记时,我想附加一个空格

我会很高兴你的帮助

谢谢


共 (2) 个答案

  1. # 1 楼答案

    要从第一个子节点检索文本text,从第三个子节点检索文本text,可以使用getAttribute("innerHTML")方法,然后使用^{}方法,最后打印文本,在它们之间插入空格,如下所示:

    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);
    
  2. # 2 楼答案

    使用.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>