Я думаю, что ваша проблема на самом деле в строке 13, а не 31, и я даже скажу, почему я так думаю. Ваш скрипт не только не содержит 31 строки, но из тонкого руководства :
form_with (критерии)
Найдите критерии соответствия для одной формы.
На этой странице есть несколько форм с method="post"
. Очевидно, Mechanize возвращает nil
, когда он не может точно соответствовать критериям form_with
, включая часть single , упомянутую в документации; Итак, если ваш criteria
соответствует более чем одной вещи, form_with
возвращает nil
вместо выбора одного из вариантов, и вы в конечном итоге пытаетесь сделать это:
nil['buscar'] = searchStr
Но nil
не имеет []=
метода, поэтому вы получите NoMethodError
.
Если вы используете это:
searchForm = page.form_with(:name => 'forma')
Вы пройдете первую часть, так как на этой странице ровно одна форма с name="forma"
. Тогда у вас будут проблемы с этим:
clasificacionLink = page.link_with(:href => "javascript:onClick=set_index_and_submit(\'51\');").click
page = agent.submit(searchForm, clasificacionLink)
, поскольку Mechanize не знает, что делать с JavaScript (по крайней мере, мой не знает). Но если вы используете только это:
page = agent.submit(searchForm)
вы получите page
, а затем сможете продолжить сборку и отладку вашего скрипта.