如何在 thenOpen 中获取 casper.js 中的响应状态 404 而不是 undefined?

2024-01-27

知道为什么下面的代码在任何一个中都没有捕获 404responsevar 或在http.status.404 event?

我使用 phantomjs 1.9、casperjs 1.0.2 和 Windows 7 运行此程序

var casper = require("casper").create(),
    utils = require('utils');

casper.start();

casper.thenOpen('http://www.google.com/sadfafsdgfsd', function(response) {
  casper.capture('test.png');
  utils.dump(response);
});

casper.on('http.status.404', function(resource) {
  this.echo('wait, this url is 404: ' + resource.url);
});

casper.run(function() {
  console.log('End');
  casper.exit();
});

理想情况下,我喜欢在 thenOpen() 中捕获 404。怎么做?

更新1:

我试过这个

casper.thenOpen('http://www.google.com/sadfafsdgfsd', function(response) {
  casper.capture('test.png');
  utils.dump(response);

    if(this.status(false)['currentHTTPStatus'] === 404) {
        console.log('Error 404');
    } else {
        console.log('No Error 404');
    }

});

这是输出:

undefined
No Error 404
End

这仍然没有意义。

更新2:

我在这里尝试了 404checker.jshttps://gist.github.com/n1k0/4509789 https://gist.github.com/n1k0/4509789

casperjs 404.js http://www.google.com/sadfafsdgfsd

Output:

URI.js loaded
Starting
http://www.google.com/sadfafsdgfsd
http://www.google.com/sadfafsdgfsd is okay (HTTP 200)
1 new links found on http://www.google.com/sadfafsdgfsd
All done, 1 links checked.

发生什么了!?


我刚刚运行了你的代码,它似乎可以很好地捕获 on 事件中的 404 错误。如果您想在 thneOpen() 中捕获它,可以使用以下方法:

casper.thenOpen('http://www.google.com/sadfafsdgfsd', function() {
    if(this.status(false)['currentHTTPStatus'] === 404) {
        console.log('Error 404');
    } else {
        console.log('No Error 404');
    }
});

或者您可以直接使用响应,在这种情况下响应['status']将为404。

casper.thenOpen('http://www.google.com/sadfafsdgfsd', function(response) {
    if(response['status'] === 404) {
        console.log('Error 404');
    } else {
        console.log('No Error 404');
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 thenOpen 中获取 casper.js 中的响应状态 404 而不是 undefined? 的相关文章

  • NodeJs读取JSON文件

    我正在使用 NodeJs 读取 json 文件 我的代码非常基本 var obj require sample json console log obj 0 Sample json 文件包含这样的字符串化 JSON sample good
  • 变量前面加双下划线

    我的节点代码中有以下代码片段 var fs require fs fs readdir dirname function err files console log files 为什么变量 dirname 有双下划线 我知道一个下划线是私有
  • Node.js:server.setTimeout、server.timeout 和 server.keepAliveTimeout 之间有什么区别

    官方文档是here https nodejs org api http html http server settimeout msecs callback server setTimeout 中没有提及有关服务下一个请求的信息 所以我认为
  • 无法使用 webpack 加载 Node 原生插件

    虽然我正在使用vue cli在生成 webpack 配置的示例代码中 没有任何特定于 vue 的内容 我像这样创建示例应用程序 vue init webpack webpack modules example 生成webpack base
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程
  • 以异步方式执行 Express res.render

    我有一个 Nodejs 应用程序 其中res renderExpress 方法以阻塞方式花费大约 400 毫秒 我如何处理它以非阻塞方式执行 我的 apache 基准测试需要 12 秒来执行大约 30 个并发请求 我如何以更好的方式实施这一
  • at=错误代码=H12 desc=node.js中的请求超时。如何处理?

    2020 07 21T06 54 58 030920 00 00 heroku 路由器 at error code H12 gt desc Request timeout 方法 获取路径 食谱 主机 desolate beach 26163
  • 使用 Nodemailer 提交电子邮件时 NodeJs 错误

    我已按照以下步骤设置 Nodemailer 1 允许访问 Gmail 中安全性较低的应用程序 2 在app js中写入以下内容 app post reachus send function req res var transporter n
  • 在 mongodb 和 nodejs 中对博客和评级进行建模

    我有一个博客集合 其中包含用户给予的标题 正文和综合评分 另一个集合 评级 其架构引用了博客 以对象 ID 的形式对博客进行评级 如果有的话 的用户以及他们给出的评级 即 1 或 1 当特定用户按照 最新优先 的顺序浏览博客时 比如每页 4
  • 为 npm install 添加本地项目依赖

    在 npm 中添加本地项目依赖项的正确语法是什么package json file 我本地有 git 项目C projects MyApp 我想得到这个项目npm install 我尝试以下 dependencies my app file
  • Nodemailer发送日历事件并将其添加到谷歌日历

    我正在尝试使用 nodemailer 将日历事件发送到 Gmail 帐户 这是我的代码 let transporter nodemailer createTransport host smtp gmail com port 587 secu
  • Angular JS + Node JS + Passport + Spring OAuth2 身份验证/授权

    我是 PassportJS 和 AngularJS 的新手 我对如何进行此授权有疑问 我有由 Oauth2 保护的 Spring REST API 但我必须像这样一起发送用户凭据 http localhost 8080 myapp oaut
  • 将随机字节转换为整数范围 - 如何?

    我试图通过读取 crypto randomBytes 来获取一定范围内的随机整数 现在 我的问题是我不知道如何从该字节流中读取整数 我想生成一个范围只是 丢弃 不在范围内的整数的问题 有任何想法吗 您可以从以下位置获取一个 32 位整数cr
  • Node.js 上的 starttls > 0.4.0

    我遇到了这个线程Node js HTTPS 安全错误 https stackoverflow com questions 5136353 node js https secure error其中提到 tls 模块是现在在节点上执行 TLS
  • GraphQL 预期可迭代,但未找到字段 xxx.yyy 的迭代

    我目前正在尝试使用 NodeJS 进行 GraphQL 但我不知道为什么以下查询会出现此错误 library name user name email 我不确定是否type of my resolveLibrary是对的 因为在任何例子中我
  • 嵌套异步/等待 Nodejs

    似乎无法弄清楚为什么这对我不起作用 我有一个父函数 它对子加载进程执行 AWAIT LOAD 进程又调用另一个名为 LOADDATA 的 AWAIT 所以基本上是这样的 module exports async function try a
  • Nodejs - 检查隐藏文件

    我正在迭代文件目录 想知道是否可以测试文件是否隐藏 目前 我只是检查文件是否以 开头或不 这适用于 Mac 也许还有 Linux 但是 我想知道如何在 Windows 上做到这一点 另外 句点会在所有版本的 Linux 中隐藏该文件吗 Th
  • Phantom-node模块无法加载外部资源

    我正在开发一个nodejs服务器 它将发布的html呈现为pdf png或jpg https github com svenhornberg pagetox https github com svenhornberg pagetox ser
  • 从节点服务器访问 Google Calendar API

    由于某种原因 我很难访问 Google 日历 我希望能够在 Node js 服务器的日历中添加和删除事件 我从文件中发现了非常矛盾的信息 我跟着 https developers google com identity protocols
  • Node.js - 重载函数

    有没有一种方法可以重载node js中的函数 类似于 noSuchMethod https developer mozilla org en JavaScript Reference Global Objects Object noSuch

随机推荐

  • 什么控制 WSDL 的肥皂地址位置中使用的 url?

    我正在通过来自iis 6的https公开wcf服务 据我所知 我已经验证了iis中的绑定设置正确 是的 肯定站点id为 1 并且已完成iisreset 当我运行这个时 C Program Files x86 Microsoft Visual
  • 为什么 HTML5 视频无法在 IOS 8 WebApp(webview) 中播放?

    简单的 HTML5 视频可以在 Safari 浏览器上播放 但将其添加到主屏幕 独立Web应用程序 后 它不起作用 它可以在 iOS7 上运行 但在 iOS8 上停止运行
  • 如何从不同的 swift 文件调用函数

    我的 Xcode 6 beta 2 项目中有多个 UIViewController 类型的 swift 文件 我基本上想知道文件 A 中的一些数据以便在文件 B 中使用 我的文件都是 UIViewController 并且我创建了一个没有参
  • 如何使用VBA自动化多个Office应用程序?

    虽然我已经在 MS Access 2007 和 Excel 2007 的单个应用程序中完成了 VBA 项目 但我还没有同时自动化多个应用程序 广义的项目是开放访问 运行一些更新查询 将数据附加到各种表 然后Excel需要获取数据 Excel
  • bash:jar:找不到命令

    我在用着Jenkins部署构建 我们需要从 a 中提取文件 war进入某个目录 我们有一个 xml文件 其中包含从以下位置提取文件的命令 war文件并启动服务器 构建正在正确创建 但是 war提取未发生 目标文件夹留空 Jenkins 控制
  • Appium服务器未检测到通过wifi连接的设备

    did adb tcpip 5555 and adb connect ipaddress The adb devices显示设备 但是当我运行 appium 服务器时 它显示没有连接 Android 设备 appium python代码是
  • 什么是 Packrat 解析?

    我知道并使用 bison yacc 但在解析世界中 围绕 Packrat 解析有很多讨论 它是什么 值得学习吗 Packrat 解析是一种提供渐近更好的性能 for 解析表达式语法 http en wikipedia org wiki Pa
  • 从 Firestore 导出 json

    由于我们可以在Firebase RTDB控制台下载json文件 有什么方法可以导出Firestore集合 文档数据的json文件 我的主要目标之一是比较更新文档之前 之后的数据 谷歌让它变得比需要的更加困难 所以社区找到了一个解决方法 如果
  • 将平面拟合到 3D 中的一组点:scipy.optimize.minimize 与 scipy.linalg.lstsq

    给定一组 3D 点 一般问题是找到a b c平面方程的系数 形式为 z a x b y c 这样得到的平面就是best fit可能到那组点 In 这个答案 https stackoverflow com a 20700063 1391441
  • 如何让表单元素“记住”选择?

    我现在正在使用 php 构建一个 更改分类 页面 我使用Mysql作为数据库 目前我使用PHP来获取有关分类的所有mysql信息 然后我像这样输出 table
  • Microsoft Edge 的 URL 长度限制

    有人知道 Microsoft Edge 的 URL 长度限制吗 如您所知 Internet Explorer 对 URL 长度有限制 最大长度为 2048 Edge 怎么样 我想 现在应该已经消失了 极限似乎已到81578 个字符 之后 我
  • 如何使用Ramda管道?

    背景 我正在尝试使用 Ramda 编写 2 个函数 但我遇到了问题pipe 这意味着我不知道如何使用它 Code 假设我有一个返回数组的函数 var createQuery params gt getSQLQuery params getM
  • 断言失败:电影播放器​​的激活状态错误 (1)

    我正在 iPad 应用程序的一个页面上播放视频 m4v 然后它会转到另一个视图控制器来播放另一个视频 它播放正常 但是当第二个视频播放完毕时 它会抛出断言失败 错误是 Assertion failure in MPMoviePlayerCo
  • Getx Flutter - 更新列表中的项目不是反应性的

    我使用 getx 作为我的 flutter 应用程序的状态管理 但我在更新列表中的值时遇到困难 所以我有一个参数为 isFollowing 的用户模型 当我单击按钮时 isFollowing 变量将发生变化并且颜色也应更新 但这并没有发生
  • 放置 libgdx Screen 的正确位置在哪里

    您好 我正在开发一款游戏 我想知道如何处理资源 因为我遇到了内存问题 我有这样的事情 public SplashScreen implements Screen Override public void render float delta
  • Flexbox - 垂直居中并匹配大小

    我使用 Flex 有两个相邻的按钮 并且它们的内容垂直居中 到目前为止效果很好 但是 当在移动页面上查看我的网站时 使用响应式设计来缩放页面 第二个按钮 其中的文本较少 的大小会与其同伴的大小不同 因此 目标是垂直对齐按钮上的文本 并使两个
  • 投票 - 阻止客户端滥用 - ASP.NET MVC

    所以我设计了这个投票的东西 它不会让某人在 24 小时内为同一篇文章投票两次 然而 假设一个人投票 并且在看到该人能够投票或者他处于 24 小时窗口内之后 我禁用投票按钮 顺便说一句 这都是 Ajax 但是 当一个人关闭浏览器并重新打开甚至
  • tsql函数分割字符串

    我想知道是否有人可以帮助我 我需要一个 sql 函数来分割给定值 例如 1 00 Not specified 3 01 05 Global WM BB Operations 2 02 05 01 Global WM BB Operation
  • 从 Eclipse PDT 转换为 Vim [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我真的很喜欢 VIM 它是我遇到过的少数几个能让你内心感到温暖和模糊的应用程序之一 然而 对于 PHP
  • 如何在 thenOpen 中获取 casper.js 中的响应状态 404 而不是 undefined?

    知道为什么下面的代码在任何一个中都没有捕获 404responsevar 或在http status 404 event 我使用 phantomjs 1 9 casperjs 1 0 2 和 Windows 7 运行此程序 var casp