Javascript 如何运行。评估。然后在噩梦中多次运行

Javascript 如何运行。评估。然后在噩梦中多次运行,javascript,node.js,nightmare,Javascript,Node.js,Nightmare,我试图抓取AJAX生成的网页。在内的网页上有几个元素,单击其中一个元素后,将在同一中生成内容,元素替换为一个返回按钮 我的任务是抓取单击中的所有元素后生成的内容,并将其写入控制台日志。 我将所有放入选择器数组,但问题是我不知道如何运行序列“。单击、.wait、.evaluate.,。在内单击”循环 步骤如下: goto http://example.com click on subpage get all "a" elements content = ""

我试图抓取AJAX生成的网页。在
内的网页上有几个
元素,单击其中一个元素后,将在同一
中生成内容,
元素替换为一个
返回按钮

我的任务是抓取单击
中的所有
元素后生成的内容,并将其写入控制台日志。 我将所有
放入选择器数组,但问题是我不知道如何运行序列“
。单击、.wait、.evaluate.,。在
内单击
”循环

步骤如下:

goto http://example.com
click on subpage
get all "a" elements
content = ""
for (i=0; i < a.lenght; i++)
{
  click on a[i]
  content = content + div.innerHTML;
  click on "a.back"
}
console.log content;
gotohttp://example.com
点击子页面
获取所有“a”元素
content=“”
对于(i=0;i
我的代码看起来:

var content
nightmare
  .goto('http://example.com')
  .wait('.firstpage')
  .click('a.subpage')
  .wait('.main')


  .evaluate(function(){
    var links = document.querySelectorAll('a.classLinks');
         for (i = 0; i < links.length; ++i) {
        links[i].click();
        // now i need to wait for <div class='main'>
        .wait('.main')
        // and do evaluate again
        .evaluate(function(){ 
            //content is glogal variable
            content = content + document.querySelector('div.main').innerHTML;
            // and click on 'back' link becaus all a.classLinks disappeared
            document.querySelector('a.back').click();
         })
         
        
    })
    return content;
  .end()
  .then(function(content) {   
    console.log(content);
  })
var内容
噩梦
后藤先生('http://example.com')
.wait(“.firstpage”)
.单击('a.子页面')
.wait(“.main”)
.评估(功能){
var links=document.querySelectorAll('a.classLinks');
对于(i=0;i

请说明如何在“恶梦中的循环”中处理多个评估?

您知道如何处理吗?您可以通过在页面中存储Htmlements列表,然后使用索引运行多个评估来完成此操作。请注意,每个评估都应该在前面的then()子句中。请参阅我的答案:(屏幕截图)[