在用模拟浏览器上传文件时,用win32gui查找窗口,并输入文件路径,点击确定上传。然而在设置打开窗口焦点时,报错了:
xx是 无效窗口句柄
经过spy++排查,确定窗口类和名称都无误,后来经过多次测试,发现问题是:窗口打开太慢,在窗口打开之前就开始查找窗口了,当然就找不到了。所以要等一等,一秒也行。
time.sleep(1)
部分python代码片段如下:
ele_file.click() time.sleep(1) print("打开文件选择弹框") procHandle = win32gui.FindWindow(None, "打开") win32gui.SetForegroundWindow(procHandle) print("设置文件") edit = win32gui.FindWindowEx(procHandle, 0, "ComboBoxEx32", None) win32api.SendMessage(edit, win32con.WM_SETTEXT, 0, localPath) print("点击打开按钮") openBt = win32gui.FindWindowEx(procHandle, 0, "Button", '打开(&O)') win32api.PostMessage(openBt, win32con.WM_LBUTTONDOWN, 0, 0) win32api.PostMessage(openBt, win32con.WM_LBUTTONUP, 0, 0)
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198632.html原文链接:https://javaforall.net
