Почему механизировать вход в систему не удается? - PullRequest
0 голосов
/ 15 января 2012

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

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

#!/home/webadmin/.rvm/rubies/ruby-1.9.3-p0/bin/ruby

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

passwd = gets.chomp

a = Mechanize.new do |agent|
   agent.user_agent_alias = 'Windows Mozilla'
   agent.log = Logger.new(STDOUT)
end

page = a.get('https://it210.it.et.byu.edu/accounts/login/?next=/')
puts "\n=== Login Page ==="
pp page
form = page.forms.first
form['username'] = 'user'
form['password'] = passwd
#pp form
page = a.submit(form, form.buttons.first)
#page = form.submit

puts "\n\n\n=== Next Page (should be homepage) ==="
pp page

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

вместо
page = a.submit(form, form.buttons.first)
попробуйте
page = form.click_button

1 голос
/ 15 января 2012

Я столкнулся с подобной проблемой. Это сработало для меня

$browser.get("something")
login_page = $browser.page.links.find { |l| l.text == 'Login' }.click

username_field = login_page.form.field_with(:name => "username")
username_field.value = $username
password_field = login_page.form.field_with(:name => "password")
password_field.value = $password

login_page.form.submit
...