2016-07-21 2 views
0

Я хотел бы использовать Nightmare JS, чтобы определить, загружается ли страница, проверяя код состояния 200. Я посмотрел варианты goto, но не смог понять это. У кого-нибудь есть идеи?Кошмар JS Код состояния страницы

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') 
     }) 
    }); 
    }); 
}); 

ответ

0

Разрешение .goto() Promise содержит информацию, содержащую code, headers, url, referrers и т.д.

Так что, если вы хотите, чтобы проверить 200 статус, вы могли бы сделать что-то вроде этого:

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

Это также работает, спасибо! –

1

Это работало для меня, чтобы проверить статус 200.

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

Это сработало отлично, спасибо! –

Смежные вопросы