我想通過使用Perl與機械化模塊單擊一個單選按鈕。我試過Perl機械化單擊單選按鈕
$mech->find_all_inputs (name => "name" , value => "1")
,但沒有得到任何結果。單選按鈕的html代碼就像那樣;
<input name="name" value="1" type="radio">
還有其他單選按鈕具有相同名稱但不同的values.So我怎麼可以點擊使用機械化模塊的單選按鈕? 預先感謝您。
我想通過使用Perl與機械化模塊單擊一個單選按鈕。我試過Perl機械化單擊單選按鈕
$mech->find_all_inputs (name => "name" , value => "1")
,但沒有得到任何結果。單選按鈕的html代碼就像那樣;
<input name="name" value="1" type="radio">
還有其他單選按鈕具有相同名稱但不同的values.So我怎麼可以點擊使用機械化模塊的單選按鈕? 預先感謝您。
用戶代理不能神奇地區分正確的。找到他們,然後通過他們挑選你需要的人。如果它只是一個
my ($radio_name, $input_err) =
map $_->name, $ua->find_all_inputs(type => 'radio');
warn "More radio inputs than expected: $!" if defined($input_err);
一旦你有正確的按鈕,你可以填它的形式可以通過該方法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)
}
學習價值觀。例如
$ua->submit_form(fields => { $radio_name => 'AND' });
的submit_form
「您可以選擇從先前獲取頁面的表單,填寫在其領域,並提交。」 [從文檔,WWW::Mechanize。它將參數作爲散列,例如,您可以在其中設置名稱和值。這種方法是一種更高層次的包裝,而不是您可以使用更具體的,例如
$ua->field($name, $value);
要設置重複者中的一個字段,選擇你想要的數目。例如,要設置從列表
$ua->set_fields($name => [ 'field_value', 2 ])
第二個還要注意的是WWW::Mechanize
繼承嚴重。當您搜索正確的調用時,查看它所繼承的包中的方法可能是個好主意。
我實際上得到它,但無法理解如何指定單擊值爲「1」的單選按鈕 – ccca