在网上找了很久方法,代码和博主一致但是一直报错。
后来下载了spy++,用这个重新自己定位了一下。发现和网上的代码有所区别。
建议自己定位,更准确。
# 使用win32gui和win32con对弹出的文件窗口进行控制:输入要上传的文件路径,点击打开
# 获取文件弹窗对象【第一个对象句柄,后面的父】
dialog = win32gui.FindWindow('#32770', '打开') # Chrome 记得配套
# dialog = win32gui.FindWindow('#32770', '文件上传') # FireFox 记得配套
# IE为'选择要加载的文件',Chrome为'打开',火狐为“文件上传”。
#有的博主这个写的是ComboBox32 我用是不行。
ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32', None)
ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, 'ComboBox', None)
# 获取文件路径输入框对象的句柄
Edit = win32gui.FindWindowEx(ComboBox, 0, 'Edit', None)
# 获取 打开button按钮对象 此处的打开就和别的博主的不一样,我定位之后发现是“打开(O)” 改完代码就可以了
button = win32gui.FindWindowEx(dialog, 0, 'Button', '打开(O)')
time.sleep(1)
# 输入框输入绝对路径
win32gui.SendMessage(Edit, win32con.WM_SETTEXT, 0, r'd:\60x91.JPG')
time.sleep(3) # 方便观看过程
# 点击 打开
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)
time.sleep(3) # 方便观看过程
指路原博:(http://t.csdnimg.cn/NI9IL)