为什么WWW :: mechanize会抱怨'未知的submit_form参数“form_id”'?

时间:2010-10-19 09:06:11

标签: perl www-mechanize

我在WWW :: Mechanize中使用submit_form函数,如下所示:

eval{
    my $me = $mechanize->submit_form( form_id => 'signin', 
    fields => { 
        login => 'abc', 
        password => 'def'} );
    $me->is_success or die $me->status_line;
};

虽然这会引发Unknown submit_form parameter "form_id"的错误,但它仍会检索该页面。为什么会抛出这个错误?

1 个答案:

答案 0 :(得分:2)

您使用的是哪个版本的WWW :: Mechanize? (print "$WWW::Mechanize::VERSION\n";

旧版本(例如2008年的1.50或2009年1月的1.54)不支持form_id参数。

它最初是在1.55_01开发者版本或者WWW :: Mechanize的1.56稳定版本中引入的(你可以很容易地看到,如果你浏览各种版本的WWW中的submit_form()方法的第一行(验证参数名称) ::机械化CPAN。

要更新,这取决于您的安装(Unix?Windows?集中安装?),但通常的方法是使用CPAN的“cpan”包装器。您可以搜索StackOverflow以获取CPAN安装问题,并询问您自己是否与您的情况无关。