簡體   English   中英

當有三個時,如何使用 WWW::Mechanize::Firefox 設置值<input>同名標簽?

[英]How do I set a value with WWW::Mechanize::Firefox when there are three <input> tags with the same name?

我正在使用WWW::Mechanize::Firefox來自動化與網頁的一些交互。 Evertyhing 運行良好,直到我到達我希望腳本在<input...>框中<input...>特定值的頁面。 不幸的是,這個頁面有三個<input...同名的框:

<input name="search_term" value="" class="inputbox" type="text">

perl 腳本中用於填充值的行是

$mech -> field('search_term', $value_search);

由於名稱search_term不能准確識別一個<input>標記,腳本會停止並顯示以下錯誤消息:

3 elements found for input with name 'search_term' ....

那么,有沒有辦法指示我要填充三個<input>哪一個?

編輯

ThisSuitIsBlackNot指出,根據文檔,我應該能夠設置第三個參數來指示我指的是多個匹配元素中的哪一個。 顯然,這第三個參數被忽略,因此

$mech -> field('search_term', $value_search, 1);

仍然會停止並顯示與未明確設置第三個參數相同的錯誤消息。

我設法讓它與eval_in_page一起工作:

$mech -> eval_in_page(
  'document.getElementsByName("search_term")[0].value = "' . $value_search . '"'
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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