2

我一直在尝试通过 CPAN 安装 WWW::Mechanize::Firefox,但在安装依赖项 MozRepl 时遇到问题。安装通过,但测试都失败了,当我强制安装它并运行我的 perl 脚本时,我遇到了一个错误

Failed to connect to ,  at /Library/Perl/5.12/MozRepl/RemoteObject.pm line 467.

所以我卸载了 MozRepl 并查看了我在日志中得到以下错误的测试:

#   Failed test at t/10-plugin-repl-enter.t line 11.
Can't locate object method "repl_enter" via package "MozRepl" at t/10-plugin-repl-enter.t line 12.

...

#   Failed test at t/20-plugin-json.t line 16.
Can't locate object method "json" via package "MozRepl" at t/20-plugin-json.t line 17.

#   Failed test at t/19-plugin-repl-util-doc_for.t line 14.
Can't locate object method "repl_doc_for" via package "MozRepl" at t/19-plugin-repl-util-doc_for.t line 16.

#   Failed test at t/18-plugin-repl-util-help_url_for.t line 14.
Can't locate object method "repl_help_url" via package "MozRepl" at t/18-plugin-repl-util-help_url_for.t line 16.

ETC..

我在 Mac OSX 10.8.4、4 GB Ram 2.5 Ghz、Perl 版本 5.12 上运行。有谁知道是什么导致了这些错误?

更新:我重新安装了 mozrepl,现在运行脚本时出现此错误:

Failed to connect to , problem connecting to "localhost", port 4242: Connection refused at /Users/thui/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/MozRepl/Client.pm line 144
4

1 回答 1

1

这适用于 perl 5.10 或更高版本、最新的 Firefox(截至写作时为 26)和来自 github 的 Mozrepl。

在命令提示符处:

(1)下载 MozRepl 并构建 XPI 文件(Firefox 扩展):

git clone git://github.com/bard/mozrepl
cd mozrepl
zip -r ../mozrepl.zip *
cd ..
mv mozrepl.zip mozrepl.xpi

(2)在 Firefox 中通过 about:addons [从文件安装] 安装扩展。

在火狐中:

(3) Menu -> Tools-> Mozrepl->Activate On Startup

(4) Menu -> Tools-> Mozrepl->Start

在命令提示符处:

(5) which firefox

确保 firefox 可执行文件(或你的操作系统的包装脚本)在$PATH- 你应该得到一些输出!

(6) cpanm WWW::Mechanize::Firefox

(7)测试它!

此时,如果 CPANminus 没有报告错误,那么 WWW::Mechanize::Firefox 应该可以正常工作。概要中的第一个示例是一个很好的测试:

#!/usr/bin/perl
use WWW::Mechanize::Firefox;
my $mech = WWW::Mechanize::Firefox->new();
$mech->get('http://google.com');

假设 MozRepl 正在侦听端口 4242(检查 Menu->Tools->Mozrepl->Change Port)。您也可以从 perl 端更改端口;见选项->new()

(8) cpanm HTML::Display::Common

我从示例中发现bcat.pl需要这个模块,但它没有作为依赖项安装。

于 2013-12-30T12:20:16.483 回答