WWW::Mechanize issue when submitting multiple forms

Hi All,

I am using eruby and Mechanize to submit forms on a website. The first
form
has a “Accept Agreement” checkbox, when user checks this checkbox and
submits this form, another form shows up which is the actual input
form.

When using eruby and Mechanize, I get the first form, check the accept
checkbox and then get the second form and then populate the fields in
the
second form. But when I submit the second form, it shows a page
saying “You
did not accept the agreement on first form”. So basically the Accept
on
first form is not getting passed while submitting the second form.

here is what I am doing:

agent = WWW::Mechanize.new
page = agent.get(“http://www.abc.com”)
form = page.forms[1] // get first form
form.checkboxes.name(‘accept’).check // accept agreement
page = agent.submit(form) // submit first form
nextform = page.forms[1] //get next form
nextform.first_name = “myname” // populate second form
nextform.last_name = “mylastname”
page = agent.submit(nextform) // submit second form
puts page.body

Does anyone know how can I get this to work ?

On Fri, Apr 06, 2007 at 01:10:04AM +0900, [email protected] wrote:

the
second form. But when I submit the second form, it shows a page
saying “You
did not accept the agreement on first form”. So basically the Accept
on
first form is not getting passed while submitting the second form.

here is what I am doing:

agent = WWW::Mechanize.new
page = agent.get(“http://www.abc.com”)

Is this actually the url you are hitting? I tried it and there is only
one form on that page.

form = page.forms[1] // get first form

page.forms[1] is nil for me…

form.checkboxes.name(‘accept’).check // accept agreement
page = agent.submit(form) // submit first form
nextform = page.forms[1] //get next form
nextform.first_name = “myname” // populate second form
nextform.last_name = “mylastname”
page = agent.submit(nextform) // submit second form
puts page.body

Does anyone know how can I get this to work ?

Can you send an example script with the correct urls in it? If not, try
installing LiveHTTPHeaders for Firefox, and making sure that firefox
submits the same thing that mechanize does.

Also, don’t forget to join the mechanize mailing list!

http://rubyforge.org/mailman/listinfo/mechanize-users

Hi Aaron,

Thanks a lot for your help !!!

LiveHTTPHeaders was a great help and Mechanize is great library !!!

My issue is resolved.

Thanks,
Prasanna

Hi Aaron,

Thanks for the information. I installed LiveHTTPHeaders and I think
Mechanize is sending the same data as Firefox.

I am actually trying to access this URL through Mechanize:

http://postmaster.info.aol.com/tools/whitelist_guides.html

this has the Accept checbox and the next form is the actual input
form.

Thanks a lot for your help,
Prasanna