2

WWW::Mechanize::FirefoxWeb ページとの対話を自動化するために使用しています。スクリプトで特定の値をボックスに入力するページに到達するまで、すべてがうまく機能し<input...>ます。残念ながら、このページには<input...まったく同じ名前の 3 つのボックスがあります。

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

値を入力するために使用される perl スクリプトの行は次のとおりです。

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

名前search_termは正確に 1 つのタグを識別しないため<input>、スクリプトは次のエラー メッセージで停止します。

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

<input>では、3 つのうちどれを埋めたいかを示す方法はありますか?

編集

ThisSuitIsBlackNotは、ドキュメントによると、3 番目のパラメーターを設定して、参照する複数の一致する要素を示すことができるはずであると指摘しています。明らかに、この 3 番目のパラメーターは無視されるため、

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

3 番目のパラメーターを明示的に設定しない場合と同じエラー メッセージで停止します。

4

1 に答える 1

1

私はそれをうまく動かすことができましたeval_in_page

$mech -> eval_in_page(
  'document.getElementsByName("search_term")[0].value = "' . $value_search . '"'
);
于 2015-06-27T14:32:29.257 に答える