【问题标题】:casperjs does not find phantomjscasperjs 没有找到 phantomjs
【发布时间】:2013-10-20 11:43:47
【问题描述】:

我已经下载了最新版本的 casperjs (1.03) 和 phantomjs (1.9.2)。

所以我从 casper 页面中获取了这个简单的小脚本:

var casper = require('casper').create({
    verbose: true,
    logLevel: "debug"
});
var casper = new require('casper').Casper();

当我尝试运行它时,我收到以下错误:

noname:phantomjs-1.9.2 Tom$ casperjs/bin/casperjs tipico2.js 
Fatal: [Errno 2] No such file or directory; did you install phantomjs?

所以,这是我的目录结构:

phantomjs-1.9.2/ <-- the folder containing phantomjs
phantomjs-1.9.2/casperjs/ <-- a subfolder containting casperjs

为什么它不起作用?

【问题讨论】:

    标签: path phantomjs casperjs


    【解决方案1】:

    解决方案其实很简单。只需导出phantomjs的二进制文件所在的路径即可。在我的情况下,这是 /Users/Tom/Downloads/phantomjs-1.9.2/bin,因此

    export PATH=$PATH:/Users/Tom/Downloads/phantomjs-1.9.2/bin
    

    【讨论】:

    • 您也可以设置环境变量,而不是修改您的 PATH。 PHANTOMJS_EXECUTABLE=/Users/Tom/Downloads/phantomjs-1.9.2/bin/phantomjs
    • 那我该如何使用这个 evnriontemtnal 变量呢?
    • 您需要 PATH 和 PHANTOMJS_EXECUTABLE (如@Brian 所述)才能使其正常工作。
    【解决方案2】:

    在 osx 上使用 npm 全局安装 casper 时遇到了同样的问题。 起初,我将环境变量 PHANTOMJS_EXECUTABLE 设置为安装 phantomjs 的路径(通常是 /usr/local/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs phantomjs)与

    export PHANTOMJS_EXECUTABLE=/usr/local/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs phantomjs
    

    这只是部分帮助,因为我仍然遇到一个错误,例如没有文件或文件夹 /usr/local/bin/phantomjs,所以我刚刚创建了符号链接并将其指向真正的二进制文件夹

    ln -s /usr/local/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs /usr/local/bin/phantomjs
    

    希望这会对某人有所帮助:)

    【讨论】:

    • 那我该如何使用那个变量呢?这个 PHANTOMJS_EXECTUABLE - 我该如何使用它?
    • @ERJAN 您只需要设置 locate phantomjs 二进制文件,然后在控制台中将其设置为 PHANTOMJS_EXECUTABLE。然后它将被 casper 用来定位幻像并正常工作
    • 对于那些试图将 CasperJS 与 slimerjs(而不是 phantomjs)一起使用的人:我已经让它运行起来,就像上面一样,通过设置一个等效的环境变量 @987654323 @ 但也我必须将 --engine=slimerjs 作为参数传递给 casperjs 可执行文件。
    【解决方案3】:

    对于 OS X:

    brew install casperjs --devel

    brew install phantomjs

    它会起作用的

    【讨论】:

    • --devel 标志似乎不起作用,但除此之外,它适用于 High Sierra
    【解决方案4】:

    如果您在 PHP 中遇到此错误,请将其放在您的 exec 上方:

    <?php
        putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs");
    ?>
    

    其中路径/usr/local/bin/phantomjs 是您的phantomjs 安装路径。例如,您可以通过在终端中输入 which phantomjs 来获取此信息。

    【讨论】:

      【解决方案5】:

      Windows 解决方案

      第 1 步 - 转到环境变量

      开始 -> 环境变量 -> 环境变量 或者 我的电脑 -> 属性 -> 高级系统设置 -> 环境变量


      第 2 步 - 为您的 PhantomJS/bin 文件夹设置新路径

      选择路径(用户或系统)-> 编辑

      新建 -> 浏览 -> 在硬盘上的 PhantomJS 安装中找到您的 BIN 文件夹 接受


      第 3 步 - 测试您的工作

      打开 CMD -> 输入“phantomjs -v”

      您应该在树中的任何文件夹中获得 phantomJS 版本号作为答案。

      【讨论】:

        【解决方案6】:

        我遇到了这个问题。在 2 台不同的 Windows 机器上试过。

        从 node_modules 文件夹和 AppData / Roaming 中删除了所有 npm 安装版本......

        从最初安装的 c:/ 中删除了 phantom 和 casper。

        下载幻影并从https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-windows.zip解压到Program Files文件夹

        下载 casper 并从 https://github.com/casperjs/casperjs/zipball/1.1.0 提取到 Program Files 文件夹

        设置系统环境变量 C:\Program Files\phantomjs-2.1.1-windows\bin

        设置系统环境变量 C:\Program Files\casperjs-casperjs-b5c59e1\bin

        我没有像其他帖子提到的那样设置 PHANTOMJS_EXECUTABLE。不确定它是否会有所作为,但在带有 Phantom 2.1.1 和 casper 1.1.0 的 Windows 10 上 100% 使用上述步骤

        【讨论】:

          【解决方案7】:

          在 osx 上使用 npm 全局安装 casperjs 后遇到同样的问题。解决方案其实很简单。您必须在脚本顶部包含这些行才能将 casperjs 与 phantomjs 连接起来。

          phantom.casperPath = "/path_to/casperjs/";
          phantom.injectJs(phantom.casperPath + "/bin/bootstrap.js");
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-12-15
            • 1970-01-01
            • 2016-08-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多