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