Windows平台的文件上传:pywin32, 安装命令: pip install pywin32 ps:识别工具 点击下载:winspy 提取码:ie6o
一、先来看上传文件的弹框,它是没有办法用 F12 来定位的,因为它是 Windows 操作系统的文件管理
二、pywin32的代码一定要等到这个操作系统的框出现才能执行,它只处理 Windows 的控价。
需要借助 Windows 的空间识别工具 winspy 点击下载:winspy 提取码:ie6o
三、按照绝对路径找元素,一层一层找外面的祖宗元素 我这是 Chrome 浏览器,不同的浏览器 title 不一样
谷歌的是"打开",火狐的是 "文件上传"
文件输入框的元素:(这是反着找的,先找需要的再找的上级元素)
Edit - ComboBox - ComboBoxEx32 - #32770
"打开"按钮的元素:(同上)
Button - #32770
四、需要修改的就是浏览器的窗口类型是什么, browser_type="chrome"
文件上传是绝对路径
前提是:Windows 上传窗口必须要出现
# 1\找到输入框和打开按钮 元素;2、输入地址,点击打开。 # 前提 :windows上传窗口已经出现。sleep1-2秒等待弹出的出现。 def upload(filePath, browser_type="chrome"): if browser_type == "chrome": title = "打开" else: title = "" # 找元素 # 一级窗口"#32770","打开" dialog = win32gui.FindWindow("#32770", title) # ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, "ComboBoxEx32", None) # 二级 comboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, "ComboBox", None) # 三级 # 编辑按钮 edit = win32gui.FindWindowEx(comboBox, 0, ‘Edit‘, None) # 四级 # 打开按钮 button = win32gui.FindWindowEx(dialog, 0, ‘Button‘, "打开(&O)") # 二级 # 往编辑当中,输入文件路径 。 win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, filePath) # 发送文件路径 win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button) # 点击打开按钮 time.sleep(2) upload("D:\\GifCam5.0 .exe")
原文:https://www.cnblogs.com/yongzhuang/p/12519537.html