[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)
> あまり、お役に立てなくて申し訳ないです。
とんでもない。ずっと、ご指導いただき、ありがたく思います。