通過pywin32庫來上傳文件


先來安裝:pip install pywin32

輔助定位工具winspy下載地址:https://sourceforge.net/projects/winspyex/

打開后是這玩意:

按住靶心拖拽到文件名選擇框,顯示選擇框class類名為Edit,還有他的句柄Handle:

點擊Windows,發現他的父級窗口是ComboBox:

再點擊紅框句柄進入ComboBox,發現其父級窗口是ComboBoxEx32。

同理可得ComboBoxEx32的父級窗口為一級窗口#32770,所以Edit是四級窗口。

同理可得打開按鈕Button是二級窗口:

以博客園后台文件上傳為例,打開上傳windows窗口之后:

 1 import win32gui  2 import win32con  3 
 4 # Chrome browser
 5 def upload_file(file_path):  6 
 7     # 一級窗口
 8     no1 = win32gui.FindWindow("#32770","打開")  9     # 二級窗口,4個參數:父級;從父級的第幾個兒子開始檢索,0表示第一個;自身類名;文本內容,沒有則None
10     combo_box_ex32 = win32gui.FindWindowEx(no1, 0, "ComboBoxEx32", None) 11     # 3級窗口
12     combo_box = win32gui.FindWindowEx(combo_box_ex32,0,"ComboBox",None) 13     # 4級窗口
14     edit = win32gui.FindWindowEx(combo_box,0,"Edit",None) 15     # 二級打開按鈕
16     button = win32gui.FindWindowEx(no1, 0, "Button", "打開(&O)") 17     # 輸入文件地址
18  win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, file_path) 19     # 點擊打開按鈕 提交文件
20     win32gui.SendMessage(no1, win32con.WM_COMMAND, 1, button) 21 
22 upload_file("C:\\1\\nihao.7z")

這樣就可以成功上傳了!(其他瀏覽器的元素文本信息有些許出入,火狐瀏覽器為”文件上傳“,谷歌為”打開“,ie為“選擇要加載的文件”。)


免責聲明!

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



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