在谷歌浏览器打开某个页面(举个例子,chrom浏览器版的百度网盘上传文件),点击上传文件时,会出现上面的弹框,因为这个弹框是属于"操作系统的行为",selenium是不能定位到的,可以使用win32gui与win32con模块操作上传文件,当出现上面的弹框直接调用下面的代码(强调"出现"),可直接上传
import win32gui
import win32con
def upload_file(file_path):
nomb_01= win32gui.FindWindow('#32770','打开')
nomb_02 = win32gui.FindWindowEx(nomb_01,0,'ComboBoxEx32',None)
nomb_03 = win32gui.FindWindowEx(nomb_02,0,'ComboBox',None)
edit = win32gui.FindWindowEx(nomb_03,0,'Edit',None)
button = win32gui.FindWindowEx(nomb_01,0,'Button','打开(&O)')
win32gui.SendMessage(edit,win32con.WM_SETTEXT,None,file_path)
win32gui.SendMessage(nomb_01,win32con.WM_COMMAND,1,button)
if __name__ == '__main__':
upload_file(r'C:\Users\feida\Desktop\谷歌上传文件.py')