在自动化脚本测试某个程序的过程中,偶尔会因为文件读取操作弹出各种信息窗口,导致自动化脚本无法继续往下执行。为了解决这个问题,需要隔一段时间对信息窗口进行一次遍历,针对需要处理的窗口进行模拟键盘输入操作,让自动化脚本能够持续执行。
# -*- coding:UTF-8 -*-
import os
import win32gui
import win32api
import win32con
# 获取所有窗口句柄信息
def get_all_hwnd(hwnd, mouse):
if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd):
hwnd_title.update({hwnd: win32gui.GetWindowText(hwnd)})
if __name__ == '__main__':
# 存放所有句柄信息
hwnd_title = dict()
win32gui.EnumWindows(get_all_hwnd, 0)
for hwnd, windows_str in hwnd_title.items():
if hwnd is not "":
# 根据字符串特征 匹配需要处理的窗口
if windows_str == "notead":
print hwnd, windows_str
hwnd = win32gui.FindWindow(None, win32gui.GetWindowText(hwnd))
# 设置窗口前置
win32gui.SetForegroundWindow(hwnd)
# 模拟键盘操作
win32api.keybd_event(13, 0, 0, 0) # 按下
win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0) # 松开