Как установить значение с помощью WWW::Mechanize::Firefox, когда есть три тега <input> с одинаковым именем?
Я использую WWW::Mechanize::Firefox
автоматизировать взаимодействие с веб-страницей. Eternalhing работает хорошо, пока не дойду до страницы, где я хочу, чтобы скрипт вводил определенное значение в <input...>
коробка. К сожалению, на этой странице три <input...
коробки с одинаковым именем:
<input name="search_term" value="" class="inputbox" type="text">
Строка в скрипте perl, используемая для заполнения значения:
$mech -> field('search_term', $value_search);
Поскольку имя search_term не идентифицирует ровно одно <input>
tag, скрипт останавливается с этим сообщением об ошибке:
3 elements found for input with name 'search_term' ....
Итак, есть ли способ указать, какой из трех <input>
Я хочу заполнить?
редактировать
ThisSuitIsBlackNot указывает, что в соответствии с документацией я должен иметь возможность установить третий параметр, чтобы указать, на какой из нескольких соответствующих элементов я ссылаюсь. Очевидно, этот третий параметр игнорируется, так что
$mech -> field('search_term', $value_search, 1);
все еще останавливается с тем же сообщением об ошибке, что и без явной установки третьего параметра.
1 ответ
Мне удалось заставить его работать с eval_in_page
:
$mech -> eval_in_page(
'document.getElementsByName("search_term")[0].value = "' . $value_search . '"'
);