2016-05-10 4 views
0

私はこのコードを実行すると:RubyでMechanizeでフォームを提出するには?

require 'mechanize' 
require 'logger' 
require 'nokogiri' 
require 'open-uri' 

agent = Mechanize.new 
agent.log = Logger.new "mech.log" 
agent.user_agent_alias = 'Mac Safari' 
agent.verify_mode = OpenSSL::SSL::VERIFY_NONE 
page = agent.get('https://sarathi.nic.in:8443/nrportal/sarathi/HomePage.jsp') 
page = agent.page.links.find{|i| i.text == "Status of Licence"}.click 
page.form(:name=>"dlform").field_with(:name=>"dlform:DLNumber").value="TN4020120005045" 
page.submit 

を、私はこのエラーを取得する:

NoMethodError: undefined method `submit' for #<Mechanize::Page:0x8e644cc> 

どのように私はこの問題を解決することができますか?

+1

おそらく、フォームではなくフォームを送信したいと思うかもしれません。 – Stefan

+0

は、前の行のsubmitをチェーンとしてpage.form(:name => "dlform")としてください。field_with(:name => "dlform:DLNumber")。値= "TN4020120005045" .submit – Sam

+0

@Samこれは、 "TN4020120 005045"。 – Stefan

答えて

0

@sudhagarの場合、pageではなくformを提出してください。また、次のように、よりクリーンなコードを別々の呼び出しに分割します。

... 
form = page.form(:name=>"dlform") 
form.field_with(:name=>"dlform:DLNumber").value="TN4020120‌​005045" 
form.submit 
... 
関連する問題