有 Java 编程相关的问题?

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

java如何通过selenium从多行<tag>检索文本

我正在尝试获取文本“1文件已成功上载。”从下面的代码

<div class="formbuttons">
<h3 id="res" class="demo" style="color: rgb(255, 255, 255); display: block;">
<center>1 file <br>has been successfully uploaded.</center>
</h3>
</div>

我正在使用:

WebElement element = driver.findElement(By.xpath("//[@id=\"res\"]/center"));
String strng =  element.getText();
System.out.println(strng);

但我没有得到任何输出。这里怎么了


共 (3) 个答案

  1. # 1 楼答案

    WebElement element = driver.findElement(By.cssSelector("#res > center"));
    String text =  element.getAttribute("innerHTML");
    System.out.println(text);
    

    “innerHTML”对我有用

  2. # 2 楼答案

    根据您提供的HTML,您可以使用以下代码块打印1个已成功上传的文件

    String my_string = driver.findElement(By.xpath("//div[@class='formbuttons']/h3[@class='demo' and @id='res']/center")).getAttribute("innerHTML");
    String[] stringParts = my_string.split(Pattern.quote("<br>"));
    String partA = stringParts[0];
    String partB = stringParts[1];
    System.out.println(partA + partB);
    
  3. # 3 楼答案

    你的xpath中没有提到tagname。试试这个:

    WebElement element = driver.findElement(By.xpath(".//*[@id='res']/center"));

    另外,我在使用HTML时遇到的一件事是,一些HTML格式化程序告诉我,它不是一个格式良好的HTML。所以如果可能的话,你可以做<br/>而不是<br>。只是提醒一下