[英]How can I set fields on an input hidden with Mechanize ?
我選擇表格來更改頁面。 但是輸入是隱藏的。
這是html代碼:
<form id="form_pager" method="post" action="">
<input type="hidden" id="txtPage" name="page">
<a class="link-paginador" href="javascript:navigatePage('1');"><<</a>
<a class="link-paginador" href="javascript:navigatePage('1');">Précédent</a>
<span id="pager">
<a class="link-paginador" href="javascript:navigatePage('1');">1</a>
<strong>2</strong>
<a class="link-paginador" href="javascript:navigatePage('3');">3</a>
<a class="link-paginador" href="javascript:navigatePage('4');">4</a>
<a class="link-paginador" href="javascript:navigatePage('5');">5</a>
</span>
<a class="link-paginador" href="javascript:navigatePage('3');">Suivant</a>
<a class="link-paginador" href="javascript:navigatePage('5');">>></a>
</form>
這是我的代碼:
$form = $mech->form_id('form_pager');
$mech->set_fields('txtPage' => 'page='.$nbpage);
$mech->click();
我試圖像這樣更改輸入的狀態:
foreach my $forms ($mech->forms()) {
map { $_->readonly(0) } $forms->inputs();
}
但這行不通。
請問您有什么主意嗎? 謝謝 !
在這里看看。
一個問題可能是WWW::Mechanize
不評估Javascript。
您可以嘗試使用WWW::Mechanize::Firefox
,它可以評估javascript,也可以使用WWW::Mechanize::PhantomJS
認為您需要知道何時使用想要使用其中之一:
WWW::Mechanize::Firefox
使用已安裝的Firefox執行,因此您需要安裝Firefox WWW::Mechanize::PhantomJS
使用phantomjs
。 因此,當您要使用WWW::Mechanize::PhantomJS
時,需要安裝該軟件。 WWW::Mechanize::PhantomJS
已完成,沒有屏幕,因此您看不到頁面。 要查看頁面的外觀,一部分是使用content_as_png
方法。 有關此的更多信息,您可以看一下POD。 之后使用javascript即可更改值。
另一個問題可能是set_fields
的調用。
# i'm not sure if this works
$mech->set_fields('page' => $nbpage);
# form WWW::Mechanize::FAQ
# when you have warnings on:
{
local $^W = 0;
$mech->field( page => $nbpage );
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.