2012-01-15 10 views
0

私はクラスのサイトにログインしようとしていますが、フォームを送信するたびにログインページが表示されます。Mechanizeログインが失敗するのはなぜですか?

私は両方の方法で両方の方法でフォームを送信して、同じ結果が得られました。私はチェックするためにそれを提出する前に、フォームを印刷し、すべての値が正しく記入されていることを確認しました。なぜこれが失敗する可能性がありますか?

#!/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 
+0

を試してみてください? – pguardiario

+0

これは2.1です。私はRuby 1.9.3を実行していますが、これはおそらくスクリプトのlolで見ることができます。 – LF4

+0

2.1 IMHOを使用するにはあまりにもバギーです。私は1.0.0を試みるだろう – pguardiario

答えて

1

私は同様の問題に遭遇しました。これは私のために働い代わり
page = a.submit(form, form.buttons.first)

$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 
+0

ありがとうございますが、get()でログインページに直接行くので、ログインページをクリックするための余分な行は必要ありません。フォームは正しく記入されているだけでなく、送信に問題があります。 – LF4

1


page = form.click_buttonどのバージョンが機械化され

関連する問題