Выбор элемента из выпадающего меню с помощью WWW::Mechanize в Perl

Я пытаюсь написать небольшую программу, которая выбирает значения из раскрывающегося меню и отправляет форму для доступа к следующей странице, вот фрагмент HTML-страницы:

<form name='formulaire' method='post' action=''>
<select class="sel_box" name="MENU" >

<option value='val1' SELECTED >value1</option>
<option value='val2'  >value2</option>
<option value='val3' >value3</option>
</select>
<input type='image' value='' src='ok.gif' border='0'>
<input type=hidden name='numTab' value='3'>
</form>

Я использую select() и submit(), как показано ниже:

use strict;
use warnings;
use WWW::Mechanize::Firefox;

my $mech = WWW::Mechanize::Firefox->new();

$mech->get_local('test.html');
$mech->select('MENU', 'val3');
$mech->submit();

и я получаю это

Не найдены элементы для .//*[(local-name(.)="input" или local-name(.)="select" или local-name(.)="textarea") и @name="MENU" ]

Что я делаю не так?

Большое спасибо


person madrigal987    schedule 29.09.2015    source источник
comment
Может быть, сначала выбрать форму? $mech->form_name('formulaire');   -  person choroba    schedule 29.09.2015
comment
Похоже на ошибку метода $mech-›xpath. Вы называете это где-то еще в своем коде?   -  person Kevin Hinshaw    schedule 29.09.2015


Ответы (1)


Я получаю другую ошибку:

I don't know which form to submit, sorry.

Это можно легко решить, добавив следующую строку после get_local:

$mech->form_name('formulaire');
person choroba    schedule 29.09.2015