我有用 Python 为 IE7 编写的自动化脚本。它完美地工作,除了触发警报框的情况。警告框在正文的 onload 中触发,这意味着它在我的脚本到达它之前被执行。
我有以下作为我的等待功能,它会一直挂起,直到单击警报框:
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
现在我只需要某种方式将窗口识别为警报框。想法?