首頁  >  文章  >  後端開發  >  python和selenium以及autoit如何實現檔案上傳功能的圖文程式碼詳解

python和selenium以及autoit如何實現檔案上傳功能的圖文程式碼詳解

黄舟
黄舟原創
2017-08-23 11:36:062298瀏覽

這篇文章主要介紹了python+selenium+autoit實作檔案上傳功能,需要的朋友可以參考下

##在做web端ui層自動化的時候會碰到檔案上傳的操作,常常有朋友問到,這裡總結一下

解決方案

第一種:type=file的上傳文件,類似如下的

使用類似這樣的程式碼就可以完成:


driver.find_element('name','file').send_keys('./小强测试品牌.png')

第二種:就是第一種除外的,實作起來較為麻煩,這裡用到了autoit,大致步驟如下:

1、下載並安裝autoit,之後在開始功能表可以看到如下

AutoIt Windows Info 用於識別Windows控制項資訊

Compile Script to.exe 用於將AutoIt產生exe 執行檔

#Run Script 用來執行AutoIt腳本

SciTE Script Editor 用來寫AutoIt腳本

2、上傳功能如下

3、辨識元素,主要是上圖的檔案名稱輸入框和開啟按鈕,使用AutoIt Windows Info完成,記錄結果如下:

檔案名稱輸入框的class 為“Edit”,Instance為“1”

開啟按鈕的class 為“Button”,Instance為“1”

4、編寫腳本,使用SciTE Script Editor,內容如下:


ControlFocus("文件上传", "","Edit1")
WinWait("[CLASS:#32770]","",10)
ControlSetText("文件上传", "", "Edit1","D:python_workspaceQiangSEAutopic小强测试品牌.jpg")
Sleep(2000)
ControlClick("文件上传", "","Button1");

上述程式碼中特別需要注意「檔案上傳」字樣是你點擊上傳按鈕之後彈出的對話框的title,可能每個系統會不一樣

5、驗證腳本

保證頁面的上傳對話方塊打開,然後執行腳本tools>go

6、開啟Compile Script to.exe工具,將其產生為exe執行檔

7、python腳本中呼叫


up=self.driver.find_element('class name','avatar-uploader-trigger')
up.find_element('class name','ant-btn').click()
os.system('D:\python_workspace\QiangSEAuto\upload.exe')
time.sleep(20)

其他

其實還有其他的解決方法,有興趣的自行研究吧,比如還可以利用如下的方式:

Python pywin32庫,識別對話框句柄,進而操作

SendKeys 庫

keybd_event 模擬按鍵

#總結

以上是python和selenium以及autoit如何實現檔案上傳功能的圖文程式碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn