有沒有計算HTML元素的內部文本的字母而不計算內部元素的文本字母的方法?計算HTML元素的內部文本字母
我嘗試了「.getText()」,‘WebElements’使用硒文庫的方法,但是這在計算(例如,「內腹板元件的內文本<體> < DIV >測試< /格> < /身體>‘爲元素,而不是‘body’元素「的結果在4個字母爲‘格’和’體)
我一定要使用額外的HTML解析庫,並如果是,你會推薦哪一個?
我使用的Java 7 ...
有沒有計算HTML元素的內部文本的字母而不計算內部元素的文本字母的方法?計算HTML元素的內部文本字母
我嘗試了「.getText()」,‘WebElements’使用硒文庫的方法,但是這在計算(例如,「內腹板元件的內文本<體> < DIV >測試< /格> < /身體>‘爲元素,而不是‘body’元素「的結果在4個字母爲‘格’和’體)
我一定要使用額外的HTML解析庫,並如果是,你會推薦哪一個?
我使用的Java 7 ...
基於this answer for a similar question,我做你的解決方案:
的一段JavaScript代碼需要的元素,在其所有的子節點進行迭代,並且如果他們文本節點,它讀取它們並返回它們的級聯:
var element = arguments[0];
var text = '';
for (var i = 0; i < element.childNodes.length; i++)
if (element.childNodes[i].nodeType === Node.TEXT_NODE) {
text += element.childNodes[i].textContent;
}
return text;
我保存這個腳本爲script.js
文件並通過FileUtils.readFileToString()
裝成一個單一的String
。你也可以使用番石榴的Files.toString()
。或者將其嵌入到Java代碼中。
final String script = FileUtils.readFileToString(new File("script.js"), "UTF-8");
JavascriptExecutor js = (JavascriptExecutor)driver;
...
WebElement element = driver.findElement(By.anything("myElement"));
String text = (String)js.executeScript(script, element);
它的工作原理。謝謝:) –
@TimBittersohl:*如果*這已經解決了您的問題,您可以通過接受答案來幫助他人知道。您可以通過單擊答案左側的清除刻度標記來完成此操作,以使其變爲綠色。這裏有更多關於它的信息:http://meta.stackexchange.com/a/5235/159222 – forsvarir
哪種語言? – Ryan
我現在添加了使用的語言。 –
看看這些:http://viralpatel.net/blogs/jquery-get-text-element-without-child-element/,http://stackoverflow.com/questions/3422949/jquery-remove-all- child-elements-and-leave-text,http://stackoverflow.com/questions/3421999/jquery-remove-only-text-content-from-a-div,http://stackoverflow.com/questions/9955955/ (沒有jQuery的解決方案) –