使用getText()方法從下面的HTML代碼中提取文本不像我期望的那樣工作。使用Java中的Selenium Webdriver獲取帶格式的文本
HTML
<pre id="responseCommand"><code>RP/ABCDEFGHI/
1.TESTING/UI
2 PHONE NUMBER
3 SOME FREE TEXT</code></pre>
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);
println的輸出如下:
Text extracted:
RP/ABCDEFGHI/
1.TESTING/UI
其餘的「2 PHONE NUMBER」和「3 SOME FREE TEXT」不顯示。 *文本從.txt文件逐行讀取,每讀取一行後,使用sendKeys(Keys.ENTER)。這就是爲什麼,代碼標籤中的文本顯示在多行上。
儘管所有可用的文檔,我無法設法提取整個文本。
有什麼想法?
乾杯!
是丟失的文本,是可見的發現呢? – Guy
這可能是因爲當你調用getText()時,最後一行還沒有添加。嘗試使用本地調用進行檢查:js.executeScript(「return arguments [0] .innerHTML;」,recoverText) –
我非常懷疑所謂的格式化是問題的原因。有沒有我們可以測試的頁面? –