当有三个同名的 <input> 标签时,如何使用 WWW::Mechanize::Firefox 设置一个值?

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 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 . '"'
);