使用Java中的Selenium Webdriver获取格式化文本

使用Java中的Selenium Webdriver获取格式化文本,java,selenium-webdriver,Java,Selenium Webdriver,使用getText()方法从以下HTML代码中提取文本的工作方式与我预期的不同 HTML 为了从代码标记中提取文本,Java代码如下: WebDriverWait waitForElement = new WebDriverWait(driver, 20); WebElement recoverText = waitForElement.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("pre[id='res

使用getText()方法从以下HTML代码中提取文本的工作方式与我预期的不同

HTML

为了从代码标记中提取文本,Java代码如下:

WebDriverWait waitForElement = new WebDriverWait(driver, 20);
WebElement recoverText = waitForElement.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("pre[id='responseCommand'] code"))); 
recoverText= driver.findElement(By.cssSelector("pre[id='responseCommand'] code"));
String textStr = recoverText.getText();
System.out.println("Text extracted: \n" + textStr );
Text extracted:
RP/ABCDEFGHI/
1.TESTING/UI
println的输出如下所示:

WebDriverWait waitForElement = new WebDriverWait(driver, 20);
WebElement recoverText = waitForElement.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("pre[id='responseCommand'] code"))); 
recoverText= driver.findElement(By.cssSelector("pre[id='responseCommand'] code"));
String textStr = recoverText.getText();
System.out.println("Text extracted: \n" + textStr );
Text extracted:
RP/ABCDEFGHI/
1.TESTING/UI
其余的“2个电话号码”和“3个自由文本”不显示

*文本从.txt文件逐行读取,每读取一行后,使用sendKeys(Keys.ENTER)。这就是为什么代码标记中的文本显示在多行上

尽管有所有可用的文档,我还是无法提取整个文本

有什么想法吗


干杯

您可以尝试使用
innerText
属性

WebElement recoverText = waitForElement.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("pre[id='responseCommand'] code")));
String textStr = recoverText.getAttribute("innerText");

我终于找到了为什么我只显示了一半的文本。显然,每次我做一个键。输入,一个新的

<pre id="responseCommand"> 
对于输入的第二线电话号码

<div class="textResponse1">
  <pre id="responseCommand">
    <code>RP/NCE1A0955/
     1.TESTING/UI
     2 PHONE NUMBER</code>
  </pre>
</div>
等等

My getText()仅应用于第一个pre标记。因此,没有其他行

没有你的评论,我没有发现这一点(inneHTML睁开了我的眼睛)


非常感谢

缺少的文本是否可见?可能是因为在调用getText()时,最后一行尚未添加。尝试使用本机调用检查:js.executeScript(“返回参数[0].innerHTML;”,recoverText)我非常怀疑所谓的格式设置是问题的原因。有一个页面可以测试这个吗?