[ruby-list:49968] Re: [質問] RubyからIE操作 ie.Document.All.???.click

From: <yamataka@...08.itscom.net>
Date: 2014-09-12 08:08:29 UTC
List: ruby-list #49968
山口です。

> 助田です。

ご教示ありがとうございます。
 
> On Thu, Sep 11, 2014 at 02:00:06PM +0900, yamataka@u08.itscom.net 
wrote:
> 
> > 助田さんのご推測どおり、
> > url  :https://kinmu.case.foo.co.jp/cndb03/WPSM_Menu.P_MainFrame
> > なりました。
> 
> やはり、ブラウザで読み込みが終わる前に実行されていたようですので、
> 期待通りの動きになっていなかったようですね。

最初に書いた、sleep の箇所が、
sleep(1) until ie.ReadyState == 4
だったのが、よくなかったようです。

> frame というものをHTMLで記述する場合、どのように記述して、
> ブラウザではどう表示されるのか理解されていますでしょうか?
> その理解がないとちょっと厳しいかも知れませんね。

[...]

> というようになります。「見えなくて正解」だと私が思っている
> 理由が伝わりますか?

勉強になりました。
 
> > 以下、ソースと出力結果を付けますので、大変恐縮ですが、引き続きご教示
いた
> > だければ幸いです。
> 
> うーん。一見、正しそうに見えます...。

今、エラーが起きているのは、デスクトップPCで、ほぼ同じ環境のラップトップ
で
同じスクリプトを走らせたところ、ラップトップでは、正しく動作しました。
なぜか、よく分かりません。
 
Windows
desktop vista bussines
laptop  vista bussines

IE
desktop ver 8.0.6001.19553
laptop  ver 8.0.6001.19553CO

cygwin
desktop CYGWIN_NT-6.0 JPC00095266 1.7.16(0.262/5/3) 2012-07-20 22:55 
i686 Cygwin
laptop  CYGWIN_NT-6.0 JPC20095858 1.7.17(0.262/5/3) 2012-10-19 14:39 
i686 Cygwin

Ruby
desktop ver 1.8.7 (2012-06-29 patchlevel 370) [i386-cygwin]
laptop  ver 1.9.3p327 (2012-11-10 reviseion 37606)

大きな違いは、Rubyのversionが、desktopは、1.8 laptopは、1.9 です。

ソース中の、target_frame.document で、Ruby ver 1.8 では、エラーになるの
が???です。

# 勤務画面のフレームコレクションを取得
frame_collection = ie.document.frames

# ie.document.all(0).outerHTML に、FRAME src="..." があるので、frame_
colection.item(0) を target_frame にする 
target_frame = frame_collection.item(0)

# 勤務画面 左側のフレームのドキュメントを取得
document = target_frame.document   # ruby ver 1.9.3p327 OK
                                   # ruby ver 1.8.7p370 NG 8 target_
frame.documentで、error:  method_missing: document (WIN32OLERunTimError)

> あまり、お役に立てなくて申し訳ないです。

とんでもない。ずっと、ご指導いただき、ありがたく思います。


In This Thread