python-web自動化-文件上傳操做(非input標籤的上傳,須要藉助第三方工具)

文件上傳操做

 

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')
相關文章
相關標籤/搜索