檢查複選框我應該如何檢查這樣一個複選框:無法通過Perl的LWP :: UserAgent的
<td><center><INPUT name="test2%40mydomain.com_notmetoo" type="CHECKBOX" value="off" ></center></td>
Perl的LWP :: UserAgent的模塊?
此代碼不會這樣做(輸出就好像在提交時沒有勾選複選框 - 即網頁被刷新並且複選框被清除)。
#!/usr/bin/perl
use LWP::UserAgent;
$ua = new LWP::UserAgent;
$ua->cookie_jar({ file => "$ENV{HOME}/.mailmanrc" });
$res = $ua->post('http://mydomain.com/mailman/admin/test1_mydomain.com/members/list',
Content_Type => 'form-data',
Content => [
'test2%40mydomain.com_notmetoo' => 'on',
setmemberopts_btn => 'Submit Your Changes'
]
);
if ($res->is_success) {
print $res->decoded_content;
print "Changed user setting...I hope!\n";
}
else {
die $res->status_line;
}
我不知道爲什麼「@」用「%40」中的元素名稱代表,但我也嘗試過(任何想法?): 「測試2 \%40mydomain.com_notmetoo '=>'on', 和 '[email protected]_notmetoo'=>'on', 沒有成功。
網站上似乎沒有JavaScript(即它在JavaScript禁用的瀏覽器中正常工作)。我無法讓它在Perl中工作。
謝謝。
特里。
更新#1:這裏是POSTDATA值從Firefox的「篡改數據」擴展名,當我檢查的Test2的notmetoo框後提交:
POSTDATA =-----------------------------2921376274802
Content-Disposition: form-data; name="findmember"
-----------------------------2921376274802
Content-Disposition: form-data; name="test1%40mydomain.com_realname"
Test1
-----------------------------2921376274802
Content-Disposition: form-data; name="user"
test1%40mydomain.com
-----------------------------2921376274802
Content-Disposition: form-data; name="test1%40mydomain.com_hide"
on
-----------------------------2921376274802
Content-Disposition: form-data; name="test1%40mydomain.com_notmetoo"
on
-----------------------------2921376274802
Content-Disposition: form-data; name="test1%40mydomain.com_plain"
on
-----------------------------2921376274802
Content-Disposition: form-data; name="test1%40mydomain.com_language"
en
-----------------------------2921376274802
Content-Disposition: form-data; name="test2%40mydomain.com_realname"
Test2
-----------------------------2921376274802
Content-Disposition: form-data; name="user"
test2%40mydomain.com
-----------------------------2921376274802
Content-Disposition: form-data; name="test2%40mydomain.com_hide"
on
-----------------------------2921376274802
Content-Disposition: form-data; name="test2%40mydomain.com_notmetoo"
off
-----------------------------2921376274802
Content-Disposition: form-data; name="test2%40mydomain.com_plain"
on
-----------------------------2921376274802
Content-Disposition: form-data; name="test2%40mydomain.com_language"
en
-----------------------------2921376274802
Content-Disposition: form-data; name="test3%40mydomain.com_realname"
Test3
-----------------------------2921376274802
Content-Disposition: form-data; name="user"
test3%40mydomain.com
-----------------------------2921376274802
Content-Disposition: form-data; name="test3%40mydomain.com_hide"
on
-----------------------------2921376274802
Content-Disposition: form-data; name="test3%40mydomain.com_plain"
on
-----------------------------2921376274802
Content-Disposition: form-data; name="test3%40mydomain.com_language"
en
-----------------------------2921376274802
Content-Disposition: form-data; name="setmemberopts_btn"
Submit Your Changes
-----------------------------2921376274802
Content-Disposition: form-data; name="allmodbit_val"
0
-----------------------------2921376274802--
這是否幫助任何人幫助我嗎?
您必須向我們顯示包含此輸入的整個表單。這是一組具有相同名稱的複選框嗎? – Borodin 2012-08-15 03:15:58
如果您正在模擬瀏覽器,那麼您應該考慮WWW :: Mechanize – Borodin 2012-08-15 03:21:10
@Borodin。感謝您的建議。以下是整個表單的副本:(http://homepages.paradise.net.nz/abcd/mailman1.htm)。正如你所看到的,複選框有不同的名稱。我剛剛注意到,與這個GNU Mailman「網站」中的其他網頁(我沒有這樣的問題)不同,這個鏈接在