[ruby-list:49948] Re: [質問] RubyからIE操作 ie.Document.All.???.click
From:
MasakiSuketa <masaki.suketa@...>
Date:
2014-09-01 10:32:50 UTC
List:
ruby-list #49948
助田です。 On Mon, Sep 01, 2014 at 02:00:13PM +0900, yamataka@u08.itscom.net wrote: > p target_frame.ole_methods 部分で、 > [item, length, frames, ... , document, ...] > documentがole_methodsとして存在するのですが... > > ./x.rb:34:in `method_missing': document (WIN32OLERuntimeError) > OLE error code:80070005 in <Unknown> > アクセスが拒否されました。 > > HRESULT error code:0x80020009 > 例外が発生しました。 > from ./x.rb:34 > と、document が method として存在しないと > > document = target_frame.document > 部分で、エラーがでます。 メッセージが紛らわしくて申し訳ないのですが、 ole_methods で表示されるメソッドを 実行したときは、エラー時に `method_missing' は常に表示されます。 で、documentは実行されているのですが、IEが「アクセスが拒否されました。」 のエラーを返してきているように思えます。 本当にメソッドが存在しない場合には、unknown property or method のようなメッセージを表示したと思います。 試した訳ではないので、確証はありませんが、遷移した先のドメインと frameの中で表示しているドメインが違うということはありませんか? 違う場合に、仕様としてIEがアクセス拒否を返す動作をしたように 思います。 (私の勘違いだったらすみません。) もしそうだとすれば、Win32OLEとしては正しい動作をしてエラーを表示 していることになり、残念ながら、Win32OLE側ではどうすることもできない 気がします。 助田