在表单末尾的网站上有一个按钮,我似乎无法点击WWW :: Mechanize。以下是与此按钮有关的HTML:
<input type="submit" class="saveButton" value="Login">
当我print $mech->find_all_inputs();
时,我会回复此信息:
HTML::Form::TextInput=HASH(0x7f8f52cdc450)
HTML::Form::TextInput=HASH(0x7f8f5302b488)
HTML::Form::SubmitInput=HASH(0x7f8f52cdc108)
第三个是我要点击的那个。即使我找到它,我也不确定如何点击这个按钮。我尝试了click(field(n => 3))
,我尝试将变量$ submit分配给find_all_inputs(3)
,然后分配click($submit);
,无论如何,都不会点击此按钮。
有人可以指导我如何点击这个难以捉摸的按钮吗?
修改(在回答问题后)
询问HTML表单后发现我实际上输入了登录表单“忘记密码”字段的密码。为什么这个字段没有出现在$mech->find_all_inputs()
,我不知道,因为“登录”是。无论哪种方式,单击按钮都会转到下一页。谢谢!
答案 0 :(得分:3)
因为它是表单中的第一个按钮,所以你可以写这个
$mech->click_button( n => 1 )
或者,因为value
属性为Login
,您可以这样做
$mech->click_button( value => 'Login' )
但由于它是表单中的唯一按钮,只需
$mech->click
应该可以正常工作
答案 1 :(得分:1)
您是否先尝试选择合适的表单,然后致电click
?它说(我的重点)
点击当前表单上的按钮效果。
在页面上找到您需要的表单。让我们说出它的2号形式。
# $ua is the User Agent (Mechanize object), at the appropriate page
$ua->form_number(2);
# fill the form ...
my $response = $ua->click();
或
$ua->submit_form(
form_number => 2,
# fields => { name => $value } # can fill it here as well
};
我发现click
整体可能更可靠。
要检查表单,您可以使用my @forms = $ua->forms
。要填写表单,您可以使用select
或set_fields
。请参阅Form Methods
和Field Methods
。所有这些操作都使用HTML::Form
个对象,因此您也可以使用它的方法。例如,value_names
和possible_values
非常方便。
如果这没有帮助,请向我们提供更多详细信息 - 相关网页将是理想的。