安装MozRepl时遇到问题

时间:2013-12-28 04:37:41

标签: perl mozrepl

我一直在尝试通过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.

等。

我在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

1 个答案:

答案 0 :(得分: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)通过about:addons [从文件安装]在Firefox中安装扩展程序。

在Firefox中:

(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(检入菜单 - >工具 - > Mozrepl->更改端口)。您也可以从perl端更改端口;查看->new()的选项。

(8) cpanm HTML::Display::Common

我发现示例中的bcat.pl需要此模块,但它并未作为依赖项安装。