2

我正在使用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);

仍然停止并显示与未明确设置第三个参数相同的错误消息。

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 回答