Selenium实现系统对话框上传文件

笔记 116 字 大概 1 分钟 400 次
当富文本编辑器调用系统对话框选择文件上传,你是不是一脸懵逼呢?

TIM截图20200419183837.jpg

工具

  • Python3.x
  • WinSpy

解决办法

既然调用的是系统对话框,所以我们可以试试 Windows API,使用winspy可以帮助我们快速的找到相关句柄。
TIM截图20200419184642.jpg
图片请结合代码查看

import win32gui
import win32con
    
dialog = win32gui.FindWindow('#32770', '打开')#找到对话框
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', None)#定位确认按钮
win32gui.SendMessage(Edit, win32con.WM_SETTEXT, None, path)#发送path到编辑框
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)#点击确认按钮
文章目录
END

本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。

发表感想