У меня есть проблемы с моей программой Perl. Эта программа входит в систему определенной веб-страницы и заполняет текстовую область для сообщения и поле ввода для номеров мобильных телефонов. При нажатии на кнопку 'Send' сообщение будет отправлено в конкретное количество. Я уже заставил это работать на отправку сообщений. Но проблема, я не могу заставить ее работать на получение сообщений/ответов. Я использую WWW:: Механизируйте модуль в Perl. Вот часть моего кода (для получения msgs):
$username = 'suezy';
$password = '123';
$url = 'http://..sample.cgi';
# ...
$mech->credentials($username, $password);
$mech->get($url);
$mech->submit();
Моя проблема, формы не показывает имен. В этой форме существует две кнопки, но я не могу выбрать, какая кнопка нажать, с тех пор нет никакого указанного имени, и идентификаторы содержит пространство (например, форма называют ='receive сообщение'). Я должен нажать на вторую кнопку, 'Получить'.
Вопрос, как я смогу получить доступ к использованию форм и кнопок, механизируют модуль, не используя имена?
Учитывая, что в вашей форме всего две кнопки, предложение ysth должно быть легко реализовано.
use strict;
use warnings;
use WWW::Mechanize;
my $username = "suezy";
my $password = "123";
my $url = 'http://.../sample.cgi';
my $mech = WWW::Mechanize->new();
$mech->get($url);
$mech->credentials($username,$password);
А затем:
$mech->click_button({number => 1}); # if the 'Receive' button is 1
Или:
$mech->click_button({number => 2}); # if the 'Receive' button is 2
Вам более чем достаточно метода проб и ошибок, чтобы определить, на какую кнопку вы нажимаете.
РЕДАКТИРОВАТЬ
Я предполагаю, что соответствующая форма уже выбрана. Если нет:
$mech->form_number($formNumber);
, где $ formNumber
- номер формы на рассматриваемой странице.
Вы пробовали использовать HTTP Recorder ?
Посмотрите документацию и попробуйте посмотрите, дает ли это разумный результат для вас.
Вы можете передать аргумент form_number методу submit_form.
Или вызовите метод form_number, чтобы указать, какая форма будет использоваться в последующих вызовах click или field.
$ mech-> form_with_fields ('username');
выберет форму, содержащую поле с именем username. hth