[#48450] 1.8.7と1.9.2の挙動の違いについて — "Jun'ya Shimoda" <jun-shimo@...>

下田です。

13 messages 2011/10/09

[ruby-list:48496] IE9/Windows7(64bit)だとformをsubmitできない

From: 大縄亮 <onawa@...>
Date: 2011-10-25 16:39:17 UTC
List: ruby-list #48496
はじめまして。株式会社マイレージテクノの大縄と申します。

今回、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
━━━━━━━━━━━━━━━━━━

In This Thread

Prev Next