win21api、win32gui、win32con三个模块操作系统窗口时一些小技巧

下面这段脚本是操作一个浏览器上弹窗,打开文件窗口,由于脚本 执行速度快,当时未添加第2行的延时时,脚本顺利的执行成功,但弹的窗却没有进行操作,建议后续如果脚本执行到打开弹窗时,延时个几秒再去操作所弹窗,这样就容易成功

 

 1        driver.find_element_by_xpath('//*[@id="uploadWithProgress"]').click()
 2             time.sleep(5)
 3             # 选择版本
 4             try:
 5                 dialog = win32gui.FindWindow('#32770', u'打开')
 6                 ComboxEx = win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32', None)
 7                 Combox = win32gui.FindWindowEx(ComboxEx, 0, 'ComboBox', None)
 8                 Edit = win32gui.FindWindowEx(Combox, 0, 'Edit', None)
 9                 button = win32gui.FindWindowEx(dialog, 0, 'Button', None)
10                 time.sleep(3)
11                 if method == "up":
12                     win32api.SendMessage(Edit, win32con.WM_SETTEXT, None, newVer)
13                 else:
14                     win32api.SendMessage(Edit, win32con.WM_SETTEXT, None, oldVer)
15                 time.sleep(1)
16                 win32api.SendMessage(dialog, win32con.WM_COMMAND, 1, button)
17             except Exception as e:
18                 self.log.debug(3)
19             time.sleep(2)

下一篇将介绍上面脚本中第5行中的win32gui.FindWindow()方法中参数的获取方法

posted @ 2019-03-06 11:29  iSZ  阅读(2517)  评论(0编辑  收藏  举报