无法连接到MozRepl / RemoteObject.pm

时间:2016-01-03 06:03:08

标签: perl firefox mechanize mozrepl

尝试使用Perl设置WWW :: Mechanize :: Firefox并访问Firefox。

我已经安装了模块及其依赖项。我不确定我是否正确理解了这个模块,但是我在unix(共享)服务器上运行它来访问和驱动在PC客户端上运行的Firefox。

我收到了一个错误:

Failed to connect to ,  at MozRepl/RemoteObject.pm at line...

我已经阅读了有关在RemoteObject.pm中设置远程访问的各种帖子并尝试了所有方法。仍然得到错误。现在我有一个小测试程序(http://kamasiri.com/kohkood/cgi-bin/testMechanize.cgi),基本如下:

#!/usr/bin/perl

use CGI;
use CGI::Carp qw(warningsToBrowser fatalsToBrowser); 
use WWW::Mechanize::Firefox;

print "Content-type: text/html\n\n";

my $mech = WWW::Mechanize::Firefox->new();
$mech->get('http://kamasiri.com');

$mech->eval_in_page('alert("Hello Firefox")');
print "<html><body><p>yeehah!</p></body></html>";

exit;

在RemoteObject.pm中,我在顶部附近进行了编辑,如下所示:

# use $ENV{MOZREPL} or localhost:4242
my $remote_machine = $ENV{REMOTE_ADDR};
$ENV{REMOTE_ADDR} = "$remote_machine:4242";
my $repl = MozRepl::RemoteObject->install_bridge(
  repl => "$ENV{REMOTE_ADDR}"
);

我在这里做错了吗?

我也尝试将PC客户端的IP地址硬编码到代码中。仍然是同样的错误。

Firefox正在运行并且MozRepl加载项已加载并正在运行(这是此错误的正常来源,我已阅读过。)

我想知道这是否是防火墙问题,所以我尝试了各种机器,包括移动设备。还是一样。事实上,它没有在错误消息中打印出ip地址和端口,这告诉我它没有将这些作为选项正确地用于程序。

我还想知道它是否是一个telnet权限问题,因为我在共享服务器上?

我接下来可以尝试什么想法?

1 个答案:

答案 0 :(得分:1)

从您的代码中,您最初的问题似乎是您没有使用要使用的服务器初始化WWW::Mechanize::Firefox。您已创建另一个名为RemoteObject.pm的文件,但您似乎并未使用它。

要初始化对象,您应该在主perl文件中执行以下操作:

my $remote_machine = $ENV{REMOTE_ADDR};
my $mech = WWW::Mechanize::Firefox->new( repl => "$remote_machine:4242" );

请注意,这将尝试连接到您用于浏览的计算机。你说你试过你的手机。您的移动设备上是否安装了带MozRepl插件的Firefox?

在RemoteObjects.pm中,无需将值设置回REMOTE_ADDR环境变量。

防火墙和套接字权限仍然存在问题,但现在您至少可以尝试连接到正确的计算机。