2016-07-21 2 views
0

Je voudrais utiliser Nightmare JS pour déterminer si une page est en cours de chargement en vérifiant le code d'état 200. J'ai regardé les options goto, mais je n'ai pas réussi à comprendre. Quelqu'un a des idées?Nightmare JS Retour Page État Code

var Nightmare = require('nightmare'); 
var should = require('chai').should(); 

describe('PageLoad Test', function() { 
var url = 'http://www.yahoo.com'; 
    describe('Browse Page', function() { 
    it('should return 200 status', function (done) { 
     this.timeout(15000); 
     new Nightmare() 
      .goto(url) 
      .wait(1000) 
      .evaluate(function() { 
       return document.querySelector('div.items').innerHTML; 
      }) 
     .then(function (element) { 
      element.should.equal(element); 
      done(); 
     }) 
     .catch(function (error) { 
      console.error('page failed to load', error); 
      done('epic failure') 
     }) 
    }); 
    }); 
}); 

Répondre

0

La .goto() résolution Promise contient des informations dont la code, headers, url, referrers, etc.

Donc, si vous voulez vérifier un état 200, vous pourriez faire quelque chose comme ceci:

var Nightmare = require('nightmare'); 
var should = require('chai').should(); 

describe('PageLoad Test', function() { 
    var url = 'http://www.yahoo.com'; 
    describe('Browse Page', function() { 
    it('should return 200 status', function (done) { 
     new Nightmare() 
     .goto(url) 
     .then(function (response) { 
      response.code.should.equal(200); 
      done(); 
     }); 
    }); 
    }); 
}); 
+0

Cela fonctionne également, merci! –

1

Cela a fonctionné pour moi de vérifier un 200 statut.

var expect = require('chai').expect; 
    require('mocha-generators').install(); 
    var Nightmare = require('nightmare'); 
    var nightmare = Nightmare({ 
     show: false, 
     ignoreSslErrors: true, 
     webSecurity: false 
    }); 

    describe('NightmareJS', function() { 
     this.timeout(15000); 
     it('should not be a nightmare', function*() { 
      var status; 
      yield nightmare 
       .goto('http://www.google.de') 
       .end() 
       .then((gotoResult) => { 
        status = gotoResult.code; 
       }); 
      expect(status).to.equal(200); 
     }); 

}); 
+0

Cela a bien fonctionné, merci! –