我选择表单来更改页面。 但输入是隐藏的。
这是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();
}
但它没有用。
请问您有什么想法吗?谢谢!
答案 0 :(得分:0)
看看here。
可能有一个问题,WWW::Mechanize
没有评估Javascript。
您可以尝试使用可以评估javascript的WWW::Mechanize::Firefox
,也可以使用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 );
}