我正在尝试使用gem Mechanize 在Ruby中提交表单,即使我已确认使用
正确设置了字段数据pp login_form.username
pp login_form.password
表单提交失败并返回此帖子底部的输出。可能会导致哪些因素导致我的提交失败?
代码
#!/usr/bin/env ruby
# encoding: utf-8
require "mechanize"
# Prepare Mechanize agent
agent = Mechanize.new do |a|
a.user_agent_alias = 'Mac FireFox'
a.follow_meta_refresh = true
end
# Retrieve login form
chess_url = "https://www.chess.no"
login_form = agent.get(chess_url).form_with(:dom_id => "mypageform_id")
# Fill login form
login_form.username = 'myuser'
login_form.password = 'mypass'
# Submit login form
my_page = agent.submit(login_form, login_form.buttons.first)
pp my_page
输出(由pp my_page
生成)
#<Mechanize::File:0x007f9bbd008b28
@body=
"{\"status\":\"error\",\"errorcode\":99,\"message\":\"Invalid username or password\",\"context\":\"userlogin\"}",
@code="200",
@filename="login.html",
@full_path=false,
@response=
{"date"=>"Tue, 25 Mar 2014 22:09:20 GMT",
"server"=>"Apache/2.2.22 (Ubuntu)",
"x-powered-by"=>"PHP/5.3.10-1ubuntu3.7",
"cache-control"=>"no-cache",
"x-server-name"=>"c01web06.keyteq.no",
"keep-alive"=>"timeout=3",
"connection"=>"Keep-Alive",
"transfer-encoding"=>"chunked",
"content-type"=>"application/json"},
@uri=#<URI::HTTPS:0x007f9bbd03bc30 URL:https://www.chess.no/cat/mypage/login>>