Perl 机械化单击单选按钮
Perl Mechanize Click A Radio Button
我正在尝试通过将 Perl 与 Mechanize 模块结合使用来单击单选按钮。我试过了
$mech->find_all_inputs ( name => "name" , value => "1" )
,但无法得到任何结果。 html单选按钮的代码是这样的;
<input name="name" value="1" type="radio">
还有其他名称相同但名称不同的单选按钮 values.So 如何使用 Mechanize 模块单击单选按钮?
提前谢谢你。
用户代理无法神奇地区分正确的。全部找到它们,然后浏览它们并选择您需要的一个。您可以通过 possible_values
方法学习值
# Finding the field name and values for the radio element
foreach ( $ua->find_all_inputs(type => 'radio') ) {
$radio_name = $_->name;
say "$radio_name values: " . join('|', $_->possible_values)
}
如果只有一个
my ($radio_name, $input_err) =
map $_->name, $ua->find_all_inputs(type => 'radio');
warn "More radio inputs than expected: $!" if defined($input_err);
获得正确的按钮后,您可以填写它所在的表格。例如
$ua->submit_form( fields => { $radio_name => 'AND' });
submit_form
“让您select从先前获取的页面中获取表单,填写其字段,然后提交。”[来自文档, WWW::Mechanize]。它将参数作为哈希值,例如,您可以在其中设置名称和值。此方法是更高级别的包装器,您可以使用更具体的包装器代替它,例如
$ua->field( $name, $value );
要在重复的字段中设置一个字段,请选择您想要的字段的编号。例如,设置列表中的第二个
$ua->set_fields( $name => [ 'field_value', 2 ] )
另请注意,WWW::Mechanize
大量继承。当您搜索正确的调用时,最好查看它继承自的包中的方法。
我正在尝试通过将 Perl 与 Mechanize 模块结合使用来单击单选按钮。我试过了
$mech->find_all_inputs ( name => "name" , value => "1" )
,但无法得到任何结果。 html单选按钮的代码是这样的;
<input name="name" value="1" type="radio">
还有其他名称相同但名称不同的单选按钮 values.So 如何使用 Mechanize 模块单击单选按钮? 提前谢谢你。
用户代理无法神奇地区分正确的。全部找到它们,然后浏览它们并选择您需要的一个。您可以通过 possible_values
# Finding the field name and values for the radio element
foreach ( $ua->find_all_inputs(type => 'radio') ) {
$radio_name = $_->name;
say "$radio_name values: " . join('|', $_->possible_values)
}
如果只有一个
my ($radio_name, $input_err) =
map $_->name, $ua->find_all_inputs(type => 'radio');
warn "More radio inputs than expected: $!" if defined($input_err);
获得正确的按钮后,您可以填写它所在的表格。例如
$ua->submit_form( fields => { $radio_name => 'AND' });
submit_form
“让您select从先前获取的页面中获取表单,填写其字段,然后提交。”[来自文档, WWW::Mechanize]。它将参数作为哈希值,例如,您可以在其中设置名称和值。此方法是更高级别的包装器,您可以使用更具体的包装器代替它,例如
$ua->field( $name, $value );
要在重复的字段中设置一个字段,请选择您想要的字段的编号。例如,设置列表中的第二个
$ua->set_fields( $name => [ 'field_value', 2 ] )
另请注意,WWW::Mechanize
大量继承。当您搜索正确的调用时,最好查看它继承自的包中的方法。