Перемещение между страницами и соскоб, как я иду с Nightmare

Есть веб-сайт, который содержит страницу со списком из 25 записей, где каждая запись является ссылкой на страницу, содержащую некоторую информацию, которая мне нужна. Я хочу попасть на страницу со списком, а затем: 1) нажмите на ссылку для первой записи 2) восстановить все html 3) нажмите обратно на страницу со списком (для этого есть кнопка) 4) повторите для всех остальных записей

Я также хотел бы сделать это как можно более эффективно, что, как мне сказали, означает использование обещаний. Вот мой набросок кода, который не работает:

var Nightmare = require('nightmare');
var nightmare = Nightmare({ openDevTools: true, show: true })
var Xray = require('x-ray');
var x = Xray();
var resultArr = [];

nightmare
.goto(hidTestURL)
.wait(2500)
.click('input[name="propertySearchOptions:advanced"]') //start navigating to listing page
.wait(2500)
.type('input[name="propertySearchOptions:streetName"]', 'Main')
.wait(2500)
.select('select[name="propertySearchOptions:recordsPerPage"]', '25')
.wait(2500)
.click('input[name="propertySearchOptions:search"]') //at listing page
.wait(2500)
.then(function(){
  nightmare
  .click('a[href^="Property.aspx?prop_id=228645"]') //first entry
  .evaluate(function(){ //retrieve info
    var resultArr = [];
    resultArr.push(document.querySelector('html').innerHTML);
  })
})

nightmare
.click('a[id="propertyHeading_searchResults"]') //return to listing page
.evaluate(function(){
  return resultArr.push(document.querySelector('html').innerHTML); retrieve listing page info to show that it returned.
})
.then(function (resultArr) {
  console.log('resultArr', resultArr);
  x(resultArr[1], 'body@html') //output listing page html
    .write('results.json');
})

Это доходит до страницы со списком, а затем не продвигается дальше. Я также попробовал тот же код, но сreturn nightmare для каждого использованияnightmare кроме первого. Я видел несколько примеров, которые использовалиreturn, но когда я сделал это, код выдал ошибку.

Я тоже пытался не включая третийnightmare (тот, что после пробела), и вместо этого пытаясь продолжить старый экземпляр кошмара, перейдя прямо к.click(), но это также выбросило ошибку.

Я явно нуждаюсь в некоторой помощи с синтаксисом и семантикой кошмара, но в Интернете не так много документации, кроме списка API. Кто-нибудь знает, как я могу сделать эту работу?

Ответы на вопрос(1)

Ваш ответ на вопрос