如何在node.js中使用CasperJS?

2024-01-12

我想在node.js 中使用CasperJS。

我参考了以下 URL 在 node.js 中使用 CasperJS:

  • https://github.com/sgentle/phantomjs-node https://github.com/sgentle/phantomjs-node
  • http://casperjs.org/index.html#faq-executable http://casperjs.org/index.html#faq-executable

在上述 URL 的帮助下,我编写了以下代码:

//DISPLAY=:0 node test2.js
var phantom = require('phantom');
console.log('Hello, world!');
phantom.create(function (ph) {
    ph.casperPath = '/opt/libs/casperjs'
    ph.injectJs('/opt/libs/casperjs/bin/bootstrap.js');
    var casper = require('casper').create();
    casper.start('http://google.fr/');

    casper.thenEvaluate(function (term) {
        document.querySelector('input[name="q"]').setAttribute('value', term);
        document.querySelector('form[name="f"]').submit();
    }, {
        term: 'CasperJS'
    });

    casper.then(function () {
        // Click on 1st result link
        this.click('h3.r a');
    });

    casper.then(function () {
        console.log('clicked ok, new location is ' + this.getCurrentUrl());
    });

    casper.run();
});

当我运行此代码时,出现以下错误:

错误信息:

tz@tz-ubuntu:/opt/workspaces/TestPhantomjs$ DISPLAY=:0 node test2.js 
Hello, world!
Error: Cannot find module 'casper'
    at Function._resolveFilename (module.js:332:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:354:17)
    at require (module.js:370:17)
    at /opt/workspaces/TestPhantomjs/test2.js:6:14
    at Object.<anonymous> (/opt/workspaces/TestPhantomjs/node_modules/phantom/phantom.js:82:43)
    at EventEmitter.<anonymous> (/opt/workspaces/TestPhantomjs/node_modules/phantom/node_modules/dnode/index.js:215:30)
    at EventEmitter.emit (events.js:67:17)
    at handleMethods (/opt/workspaces/TestPhantomjs/node_modules/phantom/node_modules/dnode-protocol/index.js:138:14)
    at EventEmitter.handle (/opt/workspaces/TestPhantomjs/node_modules/phantom/node_modules/dnode-protocol/index.js:98:13)
phantom stdout: Unable to load casper environment: Error: Failed to resolve module fs, tried fs

您可以使用SpookyJS https://github.com/WaterfallEngineering/SpookyJS从 Node 驱动 CasperJS。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在node.js中使用CasperJS? 的相关文章

随机推荐

  • python side_effect - 方法的模拟行为

    在模拟中 我希望某个函数在测试中返回一个新值 我就是这样做的 Class MyClass my var None def foo self var1 return somevalue def bar self my var foo 1 Cl
  • JDBC 类型没有方言映射:Hibernate 4 和 SQL Server 2012 为 -9 [重复]

    这个问题在这里已经有答案了 我正在使用最新的 Hibernate 4 2 7 SP1 以及实体管理器和验证器等 我正在使用 Microsoft SQL Server 2012 我尝试使用的代码是 StringBuffer sb new St
  • 接收所请求网页的多个 loadFinished 信号

    我收到多个loadFinished当我尝试加载时发出信号QWebPage我不确定是什么导致了这个问题 还有其他几个问题似乎暗示了同一问题 但解决方案对我不起作用 QtWebPage loadFinished 多次调用 https stack
  • Java中可以使用组合而不是继承来实现多态吗?

    我正在学习Java 我知道什么是继承和组合 我见过很多使用继承的多态性的例子 所以我的第一个问题是 使用组合也可以做到同样的事情吗 如果是这样 可以举个什么例子吗 我的第二个问题是 多态性基本上是方法重载和 或方法重写吗 如果是 那为什么
  • 从 Excel 数据模型/Power Query 查询单个数据点(获取和转换数据)

    我正在使用最新版本的 Excel 2016 通过 O365 E3 许可证 并使用 Power Query Get Transform Data 我可以成功创建查询并将其加载到页面 我还成功创建了 Power Pivot 报告 我想从通过 P
  • COUNTIF 相当于 dplyr 总结

    我有一个数据框 列出了参加活动的学生总数 Stu 和每组学生人数 ID Sub ID Stu Sub int int int 1 101 80 NA 2 102 130 NA 3 103 10 NA 4 104 210 20 5 105 1
  • ajax 内容加载后点击不起作用

    如何使 live click function 在 ajax 调用后工作并使用 html data 返回内容 经过 4 个小时的搜索 我想我最好问一下 因为我一无所获 这部分正在工作 ajax type POST url loadAlbum
  • 在 IntelliJ IDEA 中按名称查找包

    我知道 Java 的名字package我想在项目中找到它 如何在 IntelliJ IDEA 中快速完成此操作 有键盘快捷键吗 Open Project View工具窗口 切换到Packages查看模式 单击齿轮图标 启用扁平包装选项 禁用
  • Django 1.6 网址不起作用

    我是 Django 新手 试图弄清楚 Django 中的 url 是如何工作的 我的应用程序urls py from django conf urls import url patterns import views urlpatterns
  • 将 MaterializeCSS 与 aurelia 结合使用

    我想问是否有一步一步的方法来使用或配置 Aurelia 的materializecss 我目前可以运行我的 Aurelia 应用程序 直到教程中我的 index html 看起来像这样
  • 如何将可选列表与上下文操作栏一起使用?

    我在这里阅读新的 Android 设计标准 http developer android com design patterns selection html http developer android com design patter
  • 如果批量使用GTR/LSS运算符

    我有一个越来越大的批处理文件 它使用GTR LSS运营商 问题是if语句只允许我输入某些值 在以下示例中 输入值 2 3 或 4 将返回 值太高 char intb set char points 30 set a limit char p
  • wsdl2java - 警告:无法初始化默认密钥管理器

    在生成 java WSDL 客户端时 我收到这些错误 你能帮我理解这些吗 C Users Administrator workspace apache cxf 3 0 2 bin gt wsdl2javahttps example com
  • 使用 TF-IDF 分数进行文本分类的 KNN

    我有一个 CSV 文件 corpus csv 其中包含语料库中以下格式的分级摘要 文本 Institute Score Abstract UoM 3 0 Hello this is abstract one UoM 3 2 Hello th
  • Android studio 防止粘贴时代码重新格式化[重复]

    这个问题在这里已经有答案了 我已经开始使用 Android Studio 取代 Eclipse 但我无法习惯的一件事是 Studio 如何自动 在某些情况下 重新格式化当前文件中的部分甚至全部代码 其中一种情况是将文本粘贴到我的文件中 当我
  • 正则表达式:+$ VS *$ VS 无

    在正则表达式中 有什么区别 a zA Z and a zA Z 我也可以根本不包括它吗 a zA Z or a zA Z 我在网上查了一下 上面写着 匹配前面的字符一次或多次并且 匹配前面的字符零次或一次 但我不知道这在这种情况下意味着什么
  • 删除按钮处于活动状态(单击)时的阴影

    我有这个 CSS 用于按钮动画和其他 btnliner background url images btnbg png no repeat center 105px Fallback display block text align cen
  • 如何用C#模拟浏览器HTTP POST请求并捕获结果

    假设我们有一个带有搜索输入表单的网页 它通过 HTTP GET 将数据提交到服务器 这意味着服务器通过查询字符串接收搜索数据 用户可以看到 URL 也可以自己初始化此请求 通过 URL 查询字符串 我们都知道 这是问题所在 如果这个网页通过
  • Javascript:显示带有复选框值的图像

    我目前正在使用单选按钮和复选框来在 javascript 的帮助下显示图像 具体来说 我在处理复选框和显示图像时遇到问题 使用单选按钮时 只会显示该类别的一张图像 但对于复选框 需要显示多个图像 例如 用户可以检查夹克和手套的字段 并且将显
  • 如何在node.js中使用CasperJS?

    我想在node js 中使用CasperJS 我参考了以下 URL 在 node js 中使用 CasperJS https github com sgentle phantomjs node https github com sgentl