我想使用Nightmare JS通过检查状态代码200来确定页面是否正在加载。我查看了goto选项,但一直无法弄明白。有人有什么想法吗?
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 :(得分: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);
});
});
答案 1 :(得分:0)
.goto()
承诺解析包含的信息包括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();
});
});
});
});