【发布时间】:2017-01-22 07:34:42
【问题描述】:
我正在尝试自动登录网站。该网站是https://www.remind.com/log_in。使用dump_forms 不会在页面上提供任何表单。无论如何,我尝试使用它来提交表单,但这无法编译:
use strict;
use warnings;
use WWW::Mechanize;
my $ua = WWW::Mechanize -> new();
my $remind = 'https://www.remind.com/log_in';
$ua -> get ($remind);
$ua -> form_number(1);
my $uid = 'user@name.com';
$ua->field("uid", $uid );
my $password = 'passcode';
$ua->field("password", $password);
但这失败了。这是错误:
Can't call method "value" on an undefined value
我不知道问题出在哪里。
【问题讨论】:
-
您应该使用“值”方法显示您的代码... :-)
-
到目前为止,我刚刚添加了我的整个代码。我不使用“价值”方法。至少我认为我没有
-
JavaScript 的一些选项在
this post中列出。一方面,您询问的WWW::Mechanize::Firefox肯定是一个解决方案——然后浏览器会为您完成。还有更多。 -
Firefox 可以自动填充我的用户名和密码。我仍然无法找到登录按钮。
click_button(n=>1)以以下错误终止代码:为//*[translate(local-name(.), "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz") = "button" or (translate(local-name(.), "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz") = "input" and @type="submit")][1] at test.pl line 10.找到 3 个元素。但是,登录按钮以及“?”按钮在选项卡中以红色突出显示(我使用autoclose_tab( 0 )来观察这一点)。
标签: html forms perl www-mechanize