CasperJS按类获取元素的innerHTML

Dav*_*gel 4 javascript xpath web-scraping casperjs

我是CasperJS的新手,我在使用innerHTML时遇到了一些问题 <p class="city">Data I Need</p>

我尝试了一些东西,但似乎没有任何东西可以得到它.

var city_name= casper.evaluate(".//*[@class='city_name']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
var friend_username = city_name.innerHTML;
Run Code Online (Sandbox Code Playgroud)

var city_name = this.evaluate(function() {
    return document.querySelector(".//*[@class='city_name']").innerHtml;
});
Run Code Online (Sandbox Code Playgroud)

Art*_* B. 8

CasperJS默认使用CSS选择器:

var city_name = casper.evaluate(function() {
    return document.querySelector(".city_name").innerHTML;
});
Run Code Online (Sandbox Code Playgroud)

请注意,该属性innerHTML不是innerHtml.另请注意,这casper.evaluate()是页面上下文的界面,与之无关document.evaluate().

您当然可以使用带有CasperJS实用程序的XPath表达式.类似的函数casper.getElementInfo()为您提供了一些额外的属性html,这些innerHTML属性实际上是相应DOM元素的属性.

var x = require("casper").selectXPath;
...
var city_name = casper.getElementInfo(x(".//*[@class='city_name']")).html;
Run Code Online (Sandbox Code Playgroud)