我有一个html代码:
<div class="div_table_body">
<table class="part_listing">
<tr><td>sometext</td></tr>
<tr><td>sometext2</td></tr>
...
</table>
</div>
我尝试使用casperjs在标签“ td”中获取文本:
function getLinks() {
var tr = document.querySelectorAll('div.div_table_body table.part_listing tr');
return Array.prototype.map.call(tr, function (e) {
return e.getHTML('td', true);
});
}
casper.then(function () {
links = this.evaluate(getLinks);
console.log('links ' +links);
});
但是我得到一个NULL,请帮助了解这段代码中有什么错误?
最佳答案
这将更新getLinks
以创建并返回一个包含td的externalHTML字符串的区域。您不能在getHTML()
中使用getLinks
。 Casper评估getLinks
并在页面上执行,因此必须是普通JS。
function getLinks() {
var tr = document.querySelectorAll('div.div_table_body table.part_listing tr');
return Array.prototype.map.call(tr, function (e) {
return e.querySelector('td').outerHTML;
});
}
要仅使用Casper获取:
casper.start('http://www.example.com', function() {
this.getHTML('div.div_table_body table.part_listing tr > td', true);
});
我更新了选择器,从
td
中选择了tr
。关于javascript - 如何使用casperjs在标签中获取文本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46350028/