[ruby-list:49973] Re: [質問] RubyからIE操作 ie.Document.All.???.click
From:
<yamataka@...08.itscom.net>
Date:
2014-09-17 07:10:55 UTC
List:
ruby-list #49973
山口です。 > 助田です。 ご教示、ありがとうございます。 > On Tue, Sep 16, 2014 at 07:15:42PM +0900, yamataka@u08.itscom.net wrote: > > > > desktopのrubyのversionを2 にあげたのですが、 > > > > yama@roswell:~/bin$ ruby --version > > ruby 2.0.0p481 (2014-05-08) [i386-cygwin] > > yama@roswell:~/bin$ ./kinmuweb.rb > > url :https://www11.scas.foo.co.jp/SSO/Login?AccessID=NrT7LZEAz0m27DFA8XluwR1P&Lang=ja > > > > title:共用認証 > > ./kinmuweb.rb:107:in `method_missing': (in OLE method `document': ) ( > > WIN32OLERuntimeError) > > OLE error code:80070005 in <Unknown> > > アクセスが拒否されました。 > > > > HRESULT error code:0x80020009 > > Exception occurred. > > from ./kinmuweb.rb:107:in `<main>' > > > > やはり、勤務一覧の画面に遷移はしているのですが、同じように > > エラーになってしまいます。 > > うーん。 > 念のため、Laptopと同じバージョンのRubyにすることはできますか? # 以降のtarget_frame.document実行時、error出ず、正常に実行される # laptop ruby ver 1.9.3p327 OK # ver 1.9.3p545 OK # ver 2.0.0p481 OK # 以降のtarget_frame.document実行時 :in `method_missing': (in OLE method `document': ) (WIN32OLERuntimeError) # desktop ruby ver 1.8.7p370 NG # ver 1.9.3p545 NG # ver 2.0.0p481 NG の様に、desktopは、ことごとくダメでした。 > それでも駄目だとすると残念ながらDesktopのPC固有の環境の問題で、 > Rubyやスクリプトのバグではないのだと思います。 スクリプトは、問題なさそうだという事が分かりましたので、満足です。 最初に記述していたのは、 sleep(1) until ie.ReadyState == 4 で、ie.Busy を確認していなかったので、画面は遷移しているが、 Ruby スクリプトの ie 操作が、受付可能で無かったのに、操作していて エラーになったのが、一番の原因でした。 sleep(1) until ie.Busy == false && ie.ReadyState == 4 に、書き換え、助田さんのご教示で、後の操作もできるようになり、 コードの記述も理解できました。 > 気になることで思いつくのは、 > > > yama@roswell:~/bin$ ./kinmuweb.rb > > このとき動作しているRuby は確かに、 2.0.0p481なんですよね? > > あとは、IEのキャッシュに何かが残っていて想定したように > 読み込めていないとか...。 > Desktop と Laptop のIE などの環境の設定に違いがないか > 比較するとか、確認するしかないような気がします。 > > 正直、これ以上は私にもわからないです。 今まで、ご教示いただき、本当にありがとうございました。