文件上傳操做
1、文件上傳分兩種狀況:
1. 若是是input能夠直接輸入路徑的,能夠直接調send_keys輸入路徑瀏覽器
2. 非input標籤的上傳,須要藉助第三方工具:
2.1 Autolt 須要去調用其生成的.au3或.exe文件.----不推薦,瞭解
2.2 SendKeys第三方庫(目前只支持到2.7版本)----不推薦,瞭解
2.3 Python pywin32庫,識別對話框句柄,進而操做 ------pip install pywin32工具
2、文件上傳框,定位工具Winspy:
上傳窗口 dialog(win32gui.FindWindo)=======子窗口:打開按鈕 button (win32gui.FindWindowEx)
||
子窗口 ComboBoxEx32 (win32gui.FindWindowEx)
||
子窗口 ComboBox (win32gui.FindWindowEx)
||
子窗口:文件路徑輸入框 edit(win32gui.FindWindowEx)ui
舉例: 利用百度網盤,要先登陸百度網盤,並打開上傳文件窗口spa
-----此代碼能夠直接使用,通常不會變更,只須要注意不一樣的瀏覽器,文件上傳彈窗的第一級窗口的名字不一樣便可code
1 import win32con 2 import win32gui 3 4 def upload(filePath,browser_type="Chrome"): 5 # Chrome瀏覽器 6 if browser_type == "Chrome": 7 title = "打開" 8 # Firefox瀏覽器 9 else: 10 title = "文件上傳" 11 12 dialog = win32gui.FindWindow("#32770",title) #一級窗口 ‘打開窗口’ 13 ComboBoxEx32 = win32gui.FindWindowEx(dialog,0,"ComboBoxEx32",None) #二級 14 ComboBox = win32gui.FindWindowEx(ComboBoxEx32,0,"ComboBox",None) #三級 15 edit = win32gui.FindWindowEx(ComboBox,0,"Edit",None) #四級 16 button = win32gui.FindWindowEx(dialog,0,"Button",None) #四級 17 18 # 往文件名編輯框中輸入文件路徑 19 # 上傳操做 20 win32gui.SendMessage(edit,win32con.WM_SETTEXT,None,filePath) 21 win32gui.SendMessage(dialog,win32con.WM_COMMAND,1,button) #點擊打開按鈕 22 23 24 upload('E:\我\軟件進度.xlsx')