Я пытаюсь создать конструктор объекта article
, который содержит такие атрибуты, как название документа, автора и т. Д., И использовать создание экземпляров объекта на основе разных URL-адресов, которые я передаю ему. В приведенном ниже примере this.articleText
должен возвращать массив строк, но он ничего не возвращает.CasperJS & Object
Это отличие от this.headlineText
, которое возвращает строку hello
, как и ожидалось.
Учитывая эту разницу, я подозреваю, что основной причиной проблемы является объект document
, используемый в конструкторе. Однако никаких ошибок, возникающих при выпуске, не возникает, поэтому как мне это разрешить?
Любые предложения с благодарностью. (Там нет проблем с самим селектором CSS, если я использую функцию, чтобы получить строку статьи, то это похоже на работу Проблемы при попытке использовать объект для анализа данных.)
var fs = require('fs');
var casper = require("casper").create({
verbose: true,
logLevel: "debug"
});
function article(title, url) {
this.headlineText = title;
this.urlString = url;
var query = document.querySelectorAll("[itemprop='articleBody']");
this.articleText = Array.prototype.map.call(query, function (e) {
return e.innerText;
});
}
casper.start("http://www.yomiuri.co.jp/economy/20150625-OYT1T50136.html" , function() {
this.test.assertExists({
type: 'css',
path: '[itemprop="articleBody"]'
}, 'Article Exists');
});
casper.run(function() {
var test1 = new article("hello","http://www.yomiuri.co.jp/economy/20150625-OYT1T50136.html");
console.log("HEADLINE==");
console.log(test1.headlineText); // returns "hello"
console.log("ARTICLE == ");
console.log(test1.articleText); // returns nothing
this.exit();
});
Да - структура программы полностью в отличие от селена, который вызывает у меня головную боль ... Я переписан, чтобы вызвать функцию оценки в рамках Каспера. то (функция() {...}); – JSB