Having problem using Mechanize to log into Google Account

I am struggling with Mechanize to login to my Google account. Here is
my code:

agent = WWW::Mechanize.new
page = agent.get(‘https://www.google.com/accounts/ServiceLogin?…’)

or http://www.google.com/calendar

google_form = page.forms[0]
google_form.fields.name(“Email”).first.value = ‘myaddress’
google_form.fields.find {|f| f.name == ‘Passwd’}.value = ‘mypasswd’

pp page
results = agent.submit(google_form, google_form.buttons.first)
pp page
puts results.body

The values of the Email and Passwd fields remain empty. So it appears
to me that the code fails to login. What more should I do? Please
help!

Thanks in advance!

Kevin,

The values of the Email and Passwd fields remain empty. So it appears
to me that the code fails to login. What more should I do? Please
help!

Mechanize can not handle Javascript, so it won’t work this way. You have
two options here:

  1. Scrape the non-JS page - check this article:

http://schf.uc.org/articles/2007/02/14/scraping-gmail-with-mechanize-and-hpricot

  1. Use Watir (FireWatir if you are not on win32) which can handle
    JavaScript.

btw, posting mechanize related questions to the mechanize list
([email protected]) can yield better response time/quality.

HTH,
Peter
_
http://www.rubyrailways.com :: Ruby and Web2.0 blog
http://scrubyt.org :: Ruby web scraping framework
http://rubykitchensink.ca/ :: The indexed archive of all things Ruby.