簡體   English   中英

如何在用Mechanize隱藏的輸入上設置字段?

[英]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');">&lt;&lt;</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>&nbsp;
                                            <strong>2</strong>&nbsp;
                                            <a class="link-paginador" href="javascript:navigatePage('3');">3</a>&nbsp;
                                            <a class="link-paginador" href="javascript:navigatePage('4');">4</a>&nbsp;
                                            <a class="link-paginador" href="javascript:navigatePage('5');">5</a>&nbsp;

            </span>
                <a class="link-paginador" href="javascript:navigatePage('3');">Suivant</a>
                        <a class="link-paginador" href="javascript:navigatePage('5');">&gt;&gt;</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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM