我可以阻止 casper.fetchText 自动删除 <br> 吗?

Can I stop casper.fetchText from removing <br> automatically?

casper.fetchText 似乎自动删除了提取文本中的 <br>

例如如果文本是 abc<br>de,那么 casper.fetchText 将 return abcde 而不是 abc<br>de.

有什么方法可以保持 abc<br>de 吗?

保留 <br> 的唯一方法是检索元素的表示形式 HTML。

有几种方法。 casper.fetchText() 拼接所有匹配元素的文本内容。这也正是 element.textContent 所做的,但仅针对一个元素。

您可以使用 casper.getHTML() 检索单个元素的 element.innerHTML:

var content = casper.getHTML(selector);

如果您想要与 fetchText 相同的行为,即连接所有元素的值,那么您需要自己这样做:

var contents = casper.getElementsInfo(selector).map(function(e){
    return e.html;
}).join("\n");

casper.getElementsInfo() 为每个元素提供 html 属性。 map 创建一个仅包含 html 字符串的数组,而 join 从中创建一个字符串。