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



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

最新更新