【问题标题】:WWW::Mechanize::Firefox and MozReplWWW::Mechanize::Firefox 和 MozRepl
【发布时间】:2014-01-23 11:20:18
【问题描述】:

我在示例的帮助下编写了一些代码,但是当我运行它时,我在 Ubuntu Server 12.04.2 LTS 中遇到错误:

Failed to connect to , problem connecting to "localhost", port 4242: Connection refused at /usr/local/share/perl/5.14.2/MozRepl/Client.pm line 144

我该如何解决这个问题?

#!/usr/bin/perl -w
use strict;
use WWW::Mechanize::Firefox;
use HTTP::Cookies;

my $username = "test";
my $password = "t3st";

my $mech = WWW::Mechanize::Firefox->new();
$mech->get("http://test.com/login.php"); print "Logging, Please Wait.\n";
$mech->submit_form(
    form_number => 0,
    fields => {
        username => "$username",
        password => "$password",
    }
);

【问题讨论】:

  • 你试过localhost 0 4242吗?
  • 这不是 Perl 问题。您的问题是:1.,没有服务(例如 mozrepl)正在侦听 localhost 端口 4242,或 2.,您的防火墙正在阻止或操纵端口 4242 上的 localhost 流量,导致与它的连接立即失败。

标签: perl ubuntu-12.04 www-mechanize-firefox


【解决方案1】:
  • 在您的 firefox 上安装 MozRepl firefox 插件
  • 安装后,在您的 Firefox 中启动 MozRepl,如下所示:

    工具->MozRepl->开始

  • 确认 MozRepl 正在监听端口 4242,如下所示:

    netstat -anp | grep 火狐

    tcp 0 0 127.0.0.1:4242 0.0.0.0:* LISTEN 1438/firefox

祝你好运!!

注意:我无法正确格式化此答案,因为 SO 格式无法按预期工作。

【讨论】:

  • 在 cygwin 下,netstat 的 -p 选项需要一个协议规范,所以 -anp 没有输出。您不能 grep firefox,因为 netstat -an 不打印进程名称。所以改为使用 netstat -an | grep 4242
  • 更好的是,telnet localhost 4242
  • @PhilGoetz,我一生中从未使用过 Cygwin。感谢您的信息。
【解决方案2】:

重要的是要补充以上答案,自 18 版以来,Firefox 不再显示“工具”菜单,除非您键入 F10 键,或选择“选项 -> 菜单栏”。

【讨论】:

  • 非常感谢,菲尔!
【解决方案3】:

您是否为端口 4242 安装并启用和配置了 mozrepl 插件?

【讨论】:

    猜你喜欢
    • 2011-12-13
    • 2012-04-10
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    相关资源
    最近更新 更多