From: "大縄亮" Date: 2011-10-26T01:39:17+09:00 Subject: [ruby-list:48496] IE9/Windows7(64bit)だとformをsubmitできない はじめまして。株式会社マイレージテクノの大縄と申します。 今回、IEをバッチ処理起動して結果を取得する必要があり、rubyから Win32OLE をつかってCOMでIEを操作しようと思い、かなり以前の るびまを参照しながら試していたのですが、どうもWindows7(64bit)の IE9で、ieのCOMオブジェクト経由で取得したformのsubmitやinputの click が効かないようなのです。 同じスクリプトをwindowsXP (32bit) IE8で試したところ、問題なく 動きsubmitすることができました。 また、同等の動きをwsh を作成してみたところ、IE9・Win7でも動いて くれました。 今回、本番環境がWinXPなので、とりあえず困っているわけでは ないのですが、wshできちんと動いたということは、おそらくruby 側の 問題なのかもしれないということで、メールを送らせていただきます。 よろしくお願いいたします。 >ruby -v ruby 1.9.2p290 (2011-07-09 revision 32553) [i386-mswin32_100] 【うまくいかないスクリプト(1):yahoo.rb】 require 'win32ole' ie = WIN32OLE.new('InternetExplorer.Application') ie.Navigate("http://www.yahoo.co.jp/") ie.Visible = true while ie.busy sleep 1 end ie.Document.all("p").value="ruby" sleep 1 ie.Document.getElementById("srchbtn").click 【うまくいかないスクリプト(2):yahoo_form.rb】 require 'win32ole' ie = WIN32OLE.new('InternetExplorer.Application') ie.Navigate("http://www.yahoo.co.jp/") ie.Visible = true while ie.busy sleep 1 end ie.Document.all("p").value="ruby" sleep 1 ie.Document.forms.item(0).submit 【うまくいくスクリプト(1):yahoo.vbs】 Dim ie Set ie = WScript.CreateObject("InternetExplorer.Application","ie_") ie.Navigate("http://www.yahoo.co.jp/") ie.Visible = True While ie.ReadyState <> 4 WScript.Sleep(1000) Wend ie.Document.all("p").value="ruby" WScript.Sleep 1000 ie.Document.getElementById("srchbtn").Click 【うまくいくスクリプト(2):yahoo_form.vbs】 Dim ie Set ie = WScript.CreateObject("InternetExplorer.Application","ie_") ie.Navigate("http://www.yahoo.co.jp/") ie.Visible = True While ie.ReadyState <> 4 WScript.Sleep(1000) Wend ie.Document.all("p").value="ruby" WScript.Sleep 1000 ie.Document.forms.item(0).submit -- ━━━━━━━━━━━━━━━━━━  株式会社 マイレージテクノ    http://www.mileage-techno.com  大縄 亮    onawa@mileage-techno.com ━━━━━━━━━━━━━━━━━━