第十二節:上傳檔案
普通上傳:普通的附件上傳都是將本地檔案的路徑作為一個值放 input 標籤中,通過form 表單提交的時候將這個值提交給伺服器。
外掛上傳:一般是指基於 Flash 與 JavaScript 或Ajax 等技術所實現的上傳功能或外掛。
第一種:普通上傳
如果能找上傳的 input 標籤,那麼基本都可以通過 send_keys()方法向其輸入一個檔案地址來實現上傳。
第二種:AutoIt 實現上傳
AutoIt :是一個使用類似 BASIC
指令碼語言的免費軟體,它設計用於Windows GUI(圖形使用者介面)中進行自動化操作。它利用模擬鍵盤按鍵,滑鼠移動和視窗
官方網站:https://www.autoitscript.com/site/
從網站上下載 AutoIt
並安裝,安裝完成在選單中會看到
操作步驟:
步驟1. 開啟AutoIt Windows Info 工具,滑鼠點選 Finder Tool,滑鼠將變成一個小風扇形狀的圖示,按住滑鼠左鍵拖動到需要識別的控制元件上 。
AutoIt Windows Info 識別“檔名”輸入框控制元件
AutoIt Windows Info 識別“開啟”按鈕控制元件
通過以上兩個步驟得到如下內容:
視窗的 title 為“開啟”,標題的
Class 為“#32770”。
檔名輸入框的
開啟按鈕的 class 為“Button”,Instance 為“1” ,所以 ClassnameNN 為“Button1”。
步驟2、根據 AutoIt Windows Info 所識別到的控制元件資訊開啟 SciTE Script Editor 編輯器,編寫指令碼 ,儲存(**.au3)並通過TOOLS-->F5/GO執行指令碼
重要說明:執行腳 本時,上傳視窗必須為開啟狀態。
重要說明:在編寫指令碼輸入路徑時,是用一個反斜槓,否則會報無效檔名的錯誤提示。正確檔案路徑為:d:\baidu.txt
指令碼解釋:
ControlFocus()方法用於識別 Window 視窗。
WinWait()設定 10 秒鐘用於等待視窗的顯示,其用法與WebDriver 所提供的 implicitly_wait()類似。
ControlSetText()用於向“檔名”輸入框內輸入本地檔案的路徑。
Sleep()方法與 Python 中 time 模組提供的 Sleep()方法用法一樣,不過它是以毫秒為單位,Sleep(2000)表示固定休眠 2000 毫秒。
ControlClick()用於點選上傳視窗中的“開啟”按鈕。
步驟3:開啟 Compile Script to.exe工具,將au3指令碼檔案轉為 exe
可執行檔案
點選“Browse”選擇
upload.au3 檔案,點選“Convert”按鈕將其生成為
upfile.exe 程式。
步驟4:自動化指令碼通過os.system(command)語句呼叫執行upfile.exe,完成上傳操作
到底,通過autoIt v3完成上傳功能。