IE7 用の Python で記述されたオートメーション スクリプトがあります。アラートボックスがトリガーされた場合を除いて、完全に機能します。アラート ボックスは本文のオンロードでトリガーされます。つまり、スクリプトが到達する前に実行されます。
アラートボックスがクリックされるまでハングする待機機能として次のものがあります。
def _waitReady(self):
""" Waits until IE finishes loading. """
while self.oIE.Busy: time.sleep(0.1)
while self.oIE.Document.readyState != "complete": time.sleep(0.1)
単純にすべてのアラート ボックスを無効にしたいのですが、IE では無効にできないようです。別の方法として、アラート ボックスが開いていることを検出し、それに応じてアクションを実行する (単にクリックするなど) ことを望んでいました。これを達成する方法について何か提案はありますか?
編集: IE の子ウィンドウを切り替えることができることはわかっていますし、アラート ボックスが見つかったら閉じることができることもわかっています。
win32gui.EnumChildWindows(hwnd, function, None) # cycles through child windows
win32api.PostMessage(hwnd, win32con.WM_CLOSE, 0, 0) # closes window
ここで、ウィンドウをアラート ボックスとして識別する何らかの方法が必要です。考え?