如何使用 CasperJS 获取 innerHTML?
How to get innerHTML using CasperJS?
我只想获取 HTML 页面 <em>
标签中字符串的属性
我想得到“(868)”
1.
casper.then(function() {
var word = require('utils').dump(this.getElementAttribute(x('//*[@id="content"]/div[2]/h4/em'), 'em'));
console.log(word)
});
2.
casper.then(function() {
var word = require('utils').dump(this.getElementAttribute(h4[class="head"], 'em'));
console.log(word)
});
两个都试过了returns"null"如何解决这个问题?
<em>
不是元素属性。它本身就是一个元素。 casper.getElementAttribute(selector, attribute)
将正确检索元素的属性文本,但您想要获取元素文本。
您可以使用 casper.fetchText(selector)
。请注意 fetchText()
会将所有匹配元素的内容连接成一个字符串。如果您不希望这样,您要么需要确保选择器只匹配单个元素,要么使用其他函数,例如 casper.getElementInfo(selector).text
.
您的第二个代码段无法工作,因为您忘记了 "
选择器以及上述原因。
查看文档常见问题 Can I access & manipulate DOM elements directly from the CasperJS environment?.
在您在问题中添加的两个示例中,您试图将 em
元素作为 h4
的属性,但这是错误的,因为 em
是 child 而不是 h4
标记的属性,因此对于元素的 select textContent
您可以尝试将 querySelector
与 evaluate
函数一起使用,如下所示:
casper.then(function() {
var text = this.evaluate(function(){
return document.querySelector("h4.head em").textContent;
});
var word = require('utils').dump(text);
console.log(word);
}
希望对您有所帮助。
我只想获取 HTML 页面 <em>
标签中字符串的属性
我想得到“(868)”
1.
casper.then(function() {
var word = require('utils').dump(this.getElementAttribute(x('//*[@id="content"]/div[2]/h4/em'), 'em'));
console.log(word)
});
2.
casper.then(function() {
var word = require('utils').dump(this.getElementAttribute(h4[class="head"], 'em'));
console.log(word)
});
两个都试过了returns"null"如何解决这个问题?
<em>
不是元素属性。它本身就是一个元素。 casper.getElementAttribute(selector, attribute)
将正确检索元素的属性文本,但您想要获取元素文本。
您可以使用 casper.fetchText(selector)
。请注意 fetchText()
会将所有匹配元素的内容连接成一个字符串。如果您不希望这样,您要么需要确保选择器只匹配单个元素,要么使用其他函数,例如 casper.getElementInfo(selector).text
.
您的第二个代码段无法工作,因为您忘记了 "
选择器以及上述原因。
查看文档常见问题 Can I access & manipulate DOM elements directly from the CasperJS environment?.
在您在问题中添加的两个示例中,您试图将 em
元素作为 h4
的属性,但这是错误的,因为 em
是 child 而不是 h4
标记的属性,因此对于元素的 select textContent
您可以尝试将 querySelector
与 evaluate
函数一起使用,如下所示:
casper.then(function() {
var text = this.evaluate(function(){
return document.querySelector("h4.head em").textContent;
});
var word = require('utils').dump(text);
console.log(word);
}
希望对您有所帮助。