From: Aaron Patterson Date: 2007-04-06T03:53:21+09:00 Subject: Re: WWW::Mechanize issue when submitting multiple forms 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.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 -- Aaron Patterson http://tenderlovemaking.com/