python + selenium +win32gui + winspy 实现图片上传

过程:模拟点击上传按钮,打开Windows对话框,编辑栏输入文件路径(或网址)点击确定。网上随便找了一个进行测试。

点击后出现Windows上传对话框

 

用 winspy 来检测窗口的句柄

 

 python 实现

import win32con
import win32gui
from selenium import webdriver
import time

driver = webdriver.Chrome()

driver.get('http://file.yiyuen.com/file/')
time.sleep(1)
# 百度上传图片Input类型
driver.find_element_by_name("files").click()

time.sleep(2)

dialog = win32gui.FindWindow('#32770', u'打开')   # 对话框  这里的值即上一步winspy检测到的值
ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32', None)
ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, 'ComboBox', None)
Edit = win32gui.FindWindowEx(ComboBox, 0, 'Edit', None) # 上面三句依次寻找对象,直到找到输入框Edit对象的句柄
button = win32gui.FindWindowEx(dialog, 0, 'Button', None)   # 确定按钮Button

win32gui.SendMessage(Edit, win32con.WM_SETTEXT, None, 'https://www.baidu.com/img/baidu_resultlogo@2.png') # 往输入框输入绝对地址
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)    # 按button
原文地址:https://www.cnblogs.com/teng-0802/p/11355913.html