Я работаю над сценарием автоматической формы отправки. Он входит на сайт поставщика и заполняет поля формы. При попытке отправить желаемый результат будет отображен номер билета, который подтверждает, что форма отправлена, и запрос обрабатывается их службой поддержки.
Однако форма не отправляется правильно (подтверждение не отображается), и я подозреваю, что это вызвано одним из входов, который является SELECT.
Вот код, который я использую для установки этого поля:
$forms[3]->value('ProductList','-2');
Это, к сожалению, не влияет на подготовленную форму, сбросив $ form [3], я вижу следующее:
[...]
bless({
'onchange' => ' checkKC(document.all.ProductList, \'~0\'); prodExpand();',
'current' => 1,
'menu' => [
{
'seen' => 1,
'value' => '~0',
'name' => '<Please select>'
},
{
'seen' => 1,
'value' => '-2',
'name' => 'Product not found.... Search more'
},
{
'value' => '-1',
'name' => '------------------------------------'
},
{
'value' => 'Product1',
'name' => 'Product 1 Name'
}
],
'name' => 'ProductList',
'id' => 'ProductList',
'idx' => 1,
'type' => 'option'
}, 'HTML::Form::ListInput' ),
[...]
Использую ли я правильный метод $ forms [3]? (он был создан HTML :: Form-> parse ($ pageresult) btw) Или есть ли какой-либо другой метод, который я должен попробовать? Я не могу найти документацию для HTML :: Form :: ListInput
Спасибо за любой совет
Рассмотрите возможность использования WWW::Mechanize
для обработки формы, которая занимает более одного шага. Таким образом, вы можете включить процесс входа в свой скрипт, а также перейти к форме и, конечно, получить результат.
Или, если вам нужно работать с JavaScript, используйте WWW::Mechanize::Firefox
.
document.all
для IE 4.x и 5.0. Вы не должны использовать это на чем-то современном.