我不知道在Selenium中执行此操作的任何方法,因此有我的JS解决方案。想法是获取元素的所有子级(包括文本节点),然后仅选择文本节点。您可能需要添加一些
.trim()(或等效于JS的)调用以删除不需要的空间。
整个代码:
WebElement elem = driver.findElement(By.id("data"));String text;if (driver instanceof JavascriptExecutor) { text = ((JavascriptExecutor)driver).executescript( "var nodes = arguments[0].childNodes;" + "var text = '';" + "for (var i = 0; i < nodes.length; i++) {" + " if (nodes[i].nodeType == Node.TEXT_NODE) {" + " text += nodes[i].textContent;" + " }" + "}" + "return text;" , elem);}而且只有JS才能提高可读性。
var nodes = arguments[0].childNodes;var text = '';for (var i = 0; i < nodes.length; i++) { if (nodes[i].nodeType == Node.TEXT_NODE) { text += nodes[i].textContent; }}return text;


