Проблемы со входом в Ruby Mechanize - PullRequest
0 голосов
/ 02 марта 2012

Я пытаюсь использовать Mechanize Ruby для входа на сайт. Я посмотрел каждый пример на этом сайте, но я начинающий рубин и запутался в том, какую страницу мне даже нужно получить для доступа к форме.

Вот код, который у меня есть:

    require 'rubygems'
    require 'logger'
    require 'mechanize'

    agent = Mechanize.new
    home_page = agent.get('http://www.quora.com')
    login_form = home_page.click.form('login')

    # with email and password variables properly set
    login_form.set_fields(:session_key => 'email', :session_password=> 'password')
    return_page = agent.submit(login_form, login_form.buttons.first)

Но возвращается следующая ошибка:

    forge.rb:7: undefined method `click' for #<Mechanize::Page:0x1018592b8> (NoMethodError)

Как вы можете прокрутить страницу позади, чтобы посмотреть, содержит ли страница форму?

Кроме того, есть идеи, как исправить код?

1 Ответ

0 голосов
/ 02 марта 2012

Я считаю, что это должно работать:

require 'rubygems'
require 'logger'
require 'mechanize'

agent = Mechanize.new
home_page = agent.get('http://www.quora.com')
login_form = home_page.forms.find { |form| form.fields.map(&:name).include? 'email' }

login_form.set_values :email => 'email', :password => 'password'
return_page = login_form.submit

Я не видел session_key и session_password полей на quora.com

...