python-web自動化-文件上傳操作(非input標簽的上傳,需要借助第三方工具)


文件上傳操作

 

一、文件上傳分兩種情況:
1. 如果是input可以直接輸入路徑的,可以直接調send_keys輸入路徑


2. 非input標簽的上傳,需要借助第三方工具:
    2.1 Autolt 需要去調用其生成的.au3或.exe文件.----不推薦,了解
    2.2 SendKeys第三方庫(目前只支持到2.7版本)----不推薦,了解
    2.3 Python pywin32庫,識別對話框句柄,進而操作 ------pip install pywin32

 

二、文件上傳框,定位工具Winspy:

上傳窗口 dialog(win32gui.FindWindo)=======子窗口:打開按鈕 button (win32gui.FindWindowEx)
                        ||
子窗口 ComboBoxEx32 (win32gui.FindWindowEx)
                       ||
子窗口 ComboBox (win32gui.FindWindowEx)
                        ||
子窗口:文件路徑輸入框 edit(win32gui.FindWindowEx)

 

 

舉例: 利用百度網盤,要先登錄百度網盤,並打開上傳文件窗口

-----此代碼可以直接使用,一般不會變動,只需要注意不同的瀏覽器,文件上傳彈窗的第一級窗口的名字不同即可

 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')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM