對於web頁面的上傳功能一般有兩類實現方式:一類是將本地文件的路徑作為一個值放在input標簽中,通過form表單將這個值提交給服務器;另一個類是插件上傳,一般基於flash/javascript或者Ajax等技術實現上傳功能。
一.input標簽
input標簽可以直接通過send_keys()方法上傳附件,具體方法可百度。以下重點說明基於Autolt實現上傳的方法。
二.基於Autolt實現上傳
1.下載並安裝Autolt。官方網站:https://www.autoitscript.com/site/
2.安裝成功后打開AutoIt Windows Info工具。鼠標點擊Finder Tool變成扇葉指針,按住鼠標左鍵拖動到待識別的控件(文件名),獲取控件信息。獲得的文件名信息,其中Basic Window info中Title為“打開”,Class是“#32770”;Basic Control info中Class是“Edti”,instance是“1”
3.獲取打開按鈕的控件信息,方法同步驟2,記錄獲取到的信息
4.打開SciTE Script Editor編輯器,根據獲取到的控件信息,編寫腳本
WinWait()設置5秒用於等待上傳窗口的顯示
ControlFocus()把輸入焦點定位到上傳文本框中
ControlSetText()輸入文件路徑
sleep 等待上傳時間,單位毫秒
ControllClick()點擊打開按鈕,開始上傳
5.腳本編寫完成后,可通過Tools-->GO運行腳本,運行正常,將其保存為.au3格式
6.打開Compile Script to.ext工具,將步驟5中生成的文件轉換為exe可執行文件。
生成如下文件
7.通過自動化測試腳本調用up.exe文件
#打開上傳窗口
driver.find_element_by_xpath("//*[@id='filePicker']").click()
#調用up.exe文件
os.system("C:\Users\guorf\Desktop\up.exe")