无法在 WWW/Mechanize.pm 行 2566 处对未定义的值调用方法 "header"
Can't call method "header" on an undefined value at WWW/Mechanize.pm line 2566
我只是在 Facebook 上使用 WWW::Mechanize
模块进行测试,当我尝试 运行 下面的代码时,它 return 给我一个错误
Can't call method "header" on an undefined value at C:/Strawberry/perl/vendor/lib/WWW/Mechanize.pm line 2566.
#!/usr/bin/perl -w
use WWW::Mechanize;
my $mech = WWW::Mechanize->new();
# Connect to server
$mech->get( "https://www.facebook.com" );
$mech->success or die $mech->response->status_line;
# Log into server
$mech->field('email', 'xxx@xxx.com');
$mech->field('pass', 'xxxxxxx');
$mech->click_button(value => 'Log In');
您的页面正在以英语以外的其他语言打开。这就是您收到该错误的原因。如果您强行打开英文页面,则错误将消失。尝试以下地址:
$mech->get( "https://en-gb.facebook.com/" );
或者,您可以直接点击使用此获得的HTML::Form::SubmitInput
实例:
$mech->current_form()->find_input( undef, 'submit');
或者,由于表单中只有一个点击按钮,您可以使用不带参数的 click
。
$mech->click()
或者按照@Borodin 的建议,您可以直接使用(因为电子邮件和密码字段未翻译):
$mech->submit_form( with_fields => {
email => 'xxx@xxx.com',
pass => 'xxxxxxx'
}
);
我只是在 Facebook 上使用 WWW::Mechanize
模块进行测试,当我尝试 运行 下面的代码时,它 return 给我一个错误
Can't call method "header" on an undefined value at C:/Strawberry/perl/vendor/lib/WWW/Mechanize.pm line 2566.
#!/usr/bin/perl -w
use WWW::Mechanize;
my $mech = WWW::Mechanize->new();
# Connect to server
$mech->get( "https://www.facebook.com" );
$mech->success or die $mech->response->status_line;
# Log into server
$mech->field('email', 'xxx@xxx.com');
$mech->field('pass', 'xxxxxxx');
$mech->click_button(value => 'Log In');
您的页面正在以英语以外的其他语言打开。这就是您收到该错误的原因。如果您强行打开英文页面,则错误将消失。尝试以下地址:
$mech->get( "https://en-gb.facebook.com/" );
或者,您可以直接点击使用此获得的HTML::Form::SubmitInput
实例:
$mech->current_form()->find_input( undef, 'submit');
或者,由于表单中只有一个点击按钮,您可以使用不带参数的 click
。
$mech->click()
或者按照@Borodin 的建议,您可以直接使用(因为电子邮件和密码字段未翻译):
$mech->submit_form( with_fields => {
email => 'xxx@xxx.com',
pass => 'xxxxxxx'
}
);