0

私は Web 自動化アプリケーションに取り組んでいます。

すべてがうまくいっています。今、私は問題に立ち往生しています。

ユーザーがリンクをクリックすると、入力フィールドとボタンを含む新しいポップアップが開きます。

ユーザーがフィールドに入力し、ボタンを押します。

これを自動化したいのですが、リンクをクリックしてポップアップが表示されたときに Document_Completed イベントが発生しないという問題があります。

そのため、このポップアップ html を解析して自動化することができません。

体に役立つ提案はありますか?

4

2 に答える 2

1

これは非常に注意が必要です。私は自分自身で似たようなことに取り組んできました。まず、ダイアログが Javascript であるか、メッセージボックスであるかを確認する必要があります。JavaScript ダイアログを使用すると、http: //msdn.microsoft.com/en-us/magazine/gg309183.aspxを試すことができます。著者によると、システム ダイアログでも動作しますが、これには適していません。これが機能しない場合は、私が知る限り、深く掘り下げて Win32Api を操作してみる必要があります。

システム ダイアログは、このタイプの自動化に通常使用する DOM の一部ではありません。これには ID がなく、オペレーティング システムの残りの部分とは別のループで実行されます (非常に低いレベルでは、意図的にすべてから分離されています)。ダイアログと Windows での動作の詳細については、http ://www.winprog.org/tutorial/dialogs.html を参照してください。

これに対する完全な解決策はありませんが、取り組んでいます。

于 2012-01-09T15:06:53.650 に答える
0

関数によってポップアップのハンドルを取得できWindowFromPointます。次に、IAccessibleインターフェイスを使用してポップアップの要素にアクセスできます。このようなもの:

const uint OBJID_NATIVEOM = 0;
Guid  IID_IAcce = new Guid("{618736e0-3c3d-11cf-810c-00aa00389b71}");

IntPtr inpt = WindowFromPoint( p);

object ptr1 = null;
int l;

l = AccessibleObjectFromWindow(inpt, OBJID_NATIVEOM,    IID_IAcce.ToByteArray(), ref ptr1);
var acc = ptr1 as IAccessible;
于 2013-07-24T10:48:00.930 に答える