javascript - 如何使用 PhantomJS 测试网页是否返回 404/500?

标签 javascript phantomjs

我是 PhantomJS 和 Javascript 的新手,我正在编写一个测试加载时间的脚本,我想让它检测在测试它时是否遇到错误 404/500,并在控制台日志。代码是这样的:

var page = require('webpage').create(), t, address;
t = Date.now();

var testArray =
['someURL'];

function loadTest(testURL)
{
address = testURL;
page.open(address, function (status) {
    if (status !== 'success') {
        console.log('FAIL to load the address' + address);
return;
    }

});
}

for(var i = 0; i < testArray.length; i++)
{
loadTest(testArray[i]);
t = Date.now() - t;
console.log('Testing ' + testArray[i]);
console.log('Loading time ' + t + ' msec\n');
}
phantom.exit();

非常感谢您的帮助。谢谢

最佳答案

您可能想看一下页面对象的 onResourceReceived 回调,您应该能够从那里得到您需要的东西。 ( API docs... )

这是一个有点人为的例子,它将返回作为请求的一部分检索到的每个资源的状态代码,但第一个将是页面本身(即,与支持 JS 或CSS 等):

var page = require('webpage').create();

page.onResourceReceived = function(res) {
  if (res.stage === 'end') {
    console.log('Status code: ' + res.status);
  }
};

page.open('http://some.url/that/does-not-exist', function() {
  phantom.exit();
});

诚然,这假定服务器实际上将返回给您一个 404(而不是例如伪装成 404 的 200)——但是按照这些思路应该可以满足您的需求。

关于javascript - 如何使用 PhantomJS 测试网页是否返回 404/500?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10539643/

相关文章:

javascript - 对象数组 : Create new object for each specified key that has a value

javascript - 使用phantomjs检索skyscanner结果的html代码

node.js - 生成网页的 PDF

javascript - MOOTOOLS 变量范围

javascript - Jquery 插件在 URL 中创建不需要的#

javascript - "TypeError: undefined is not a constructor"与 capybara (PhantomJS)

javascript - PhantomJS 中的动画主体滚动顶部不会更改滚动顶部值

javascript - 使用 Phantomjs 1.9 为 Windows 和 Linux 输出不同的 PDF

javascript - 如何将HTML数据从 Node js发送到前端?

javascript - 从设置间隔的文件中停止间隔