1. 程式人生 > >第十二節:上傳檔案

第十二節:上傳檔案

對於 web 頁面的上傳功能一般會有以下幾種方式。
普通上傳:普通的附件上傳都是將本地檔案的路徑作為一個值放
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 為“Edit”,Instance 為“1” ,所以 ClassnameNN 為“Edit1”(可通過Control標籤頁查詢到該屬性)。
開啟按鈕的
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完成上傳功能。