0
我在javascript中使用Nightmare創建一個web刮板,但評估函數沒有返回正確的信息。它似乎能夠返回原始類型(整數,字符串等),但不包含「querySelectorAll」中的元素列表。下面的代碼工作得很好:噩夢沒有從評估返回正確的值
var Nightmare = require('nightmare'); // make a new nightmare
var nightmare = Nightmare({ show: true }); // display it (change to false for text only)
nightmare
.goto('http://stackoverflow.com/questions') // go to stack overflow
.evaluate(function() {
var all_options = document.querySelectorAll(".summarycount");
return all_options[0].innerHTML;
})
// .end()
.then(function (result) {
console.log(result);
})
.catch(function (error) {
console.error('Search failed:', error);
});
,並打印出「13844183」或任何當前的問題問數量爲。然而,當我試圖返回所有從評價功能的選項,改變像這樣的評估,然後功能:
.evaluate(function() {
var all_options = document.querySelectorAll(".summarycount");
return all_options;
})
// .end()
.then(function (result) {
console.log(result[0].innerHTML);
})
它只是打印不確定的。所以evaluate函數返回的值不是所有匹配DOM元素的正確列表。有沒有辦法解決?理想情況下,腳本能夠從列表中找到多個元素,選擇每個元素,然後在頁面上運行更多代碼(可能涉及選擇更多選項),然後評估結果。