[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

WWW::Mechanize issue when submitting multiple forms

prasannakate

4/5/2007 4:06:00 PM

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...)
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 ?

--
Thanks,
Prasanna

3 Answers

Aaron Patterson

4/5/2007 6:53:00 PM

0

On Fri, Apr 06, 2007 at 01:10:04AM +0900, prasannakate@gmail.com wrote:
> 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...)

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/mecha...

--
Aaron Patterson
http://tenderlovem...

prasannakate

4/6/2007 9:30:00 AM

0

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_g...

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

Thanks a lot for your help,
Prasanna

prasannakate

4/7/2007 8:30:00 AM

0

Hi Aaron,

Thanks a lot for your help !!!

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

My issue is resolved.

Thanks,
Prasanna