Добавьте товар в корзину с помощью WWW :: Mechanize - Perl

Я пишу сценарий, который выбирает размер и добавляет товар в корзину, вот где он находится http://store.nike.com/us/en_us/pd/free-4-flyknit-running-shoe/pid-1064825/pgid-1481072 < / а>

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

my $tconike = "http://store.nike.com/us/en_us/pd/free-4-flyknit-running-shoe/pid-1064825/pgid-1481072";

$mech->get($tconike);
print $mech->uri();
$mech->submit_form(
    form_number=> 2,
    fields => {
    skuAndSize => $shoesize,
    click => "ADD TO CART",
    }
);

Но вот вывод

Uncaught exception from user code:
        No form found to submit. at nikecartstandalone.pl line 25
 at C:/Users/Brett/Documents/brett/Perl/perl/site/lib/WWW/Mechanize/Firefox.pm l
ine 2162
        WWW::Mechanize::Firefox::signal_condition('WWW::Mechanize::Firefox=HASH(
0x2a54888)', 'No form found to submit.') called at C:/Users/Brett/Documents/bret
t/Perl/perl/site/lib/WWW/Mechanize/Firefox.pm line 3649
        WWW::Mechanize::Firefox::submit_form('WWW::Mechanize::Firefox=HASH(0x2a5
4888)', 'form_number', 2, 'fields', 'HASH(0x3501328)') called at nikecartstandal
one.pl line 25

Кто-нибудь знает, что я сделал не так, потому что я должен был использовать что-то besisdes submit_form или это что-то еще?


person Brett    schedule 08.05.2014    source источник


Ответы (1)


Поскольку в сообщении об ошибке указано, что форма не может быть найдена, попробуйте отправить форму с помощью with_fields, где вы можете указать поля, которые есть в форме, которую вы собираетесь отправить, что будет легче искать и отправлять.

Например: $mech->form_with_fields('username'); выберет форму, содержащую поле с именем пользователя.

person Chankey Pathak    schedule 09.05.2014
comment
Теперь это не сработало. Я только что получил ошибку Неперехваченное исключение из пользовательского кода: No elements found for form with fields [skuAndSize] at getsearchentities 1.pl line 77 at C:/Users/Brett/Documents/brett/Perl/perl/site/lib/WWW/Mechanize/Firefox.pm l ine 2162 Это, кстати, только начало. Есть ли способ ввести размер обуви (skuAndSize) и нажать кнопку «Добавить в корзину» за пределами form, потому что похоже, что Perl просто не воспринимает это как форму? - person Brett; 09.05.2014