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_workspaceQiangSEAutoupload.exe')
time.sleep(20)
其他
其實還有其他的解決方法,感興趣的自行研究吧,比如還可以利用如下的方式:
Python pywin32庫,識別對話方塊控制程式碼,進而操作
SendKeys 庫
keybd_event 模擬按鍵
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2652527/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ajax實現檔案上傳
- PHP實現單檔案、多檔案上傳 封裝 物件導向實現檔案上傳PHP封裝物件
- 檔案上傳原理和實現
- 使用Spring實現上傳檔案Spring
- Spring mvc檔案上傳實現SpringMVC
- HttpFileCollection 實現多檔案上傳HTTP
- 通過配置檔案(.htaccess)實現檔案上傳
- 使用java的MultipartFile實現layui官網檔案上傳實現全部示例,java檔案上傳JavaUI
- js實現帶上傳進度的檔案上傳JS
- 關於node實現檔案上傳
- PHP實現圖片(檔案)上傳PHP
- Feign實現檔案上傳下載
- Java檔案上傳如何實現呢?Java
- SpringMVC多個檔案上傳實現SpringMVC
- SpringBoot專案實現檔案上傳和郵件傳送Spring Boot
- 自定義檔案上傳功能實現方法
- 【node】檔案上傳功能簡易實現
- Spring Cloud Feign的檔案上傳實現SpringCloud
- node中間層實現檔案上傳
- SpringMVC實現多檔案上傳原始碼SpringMVC原始碼
- SpringMVC實現檔案上傳&下載(2)SpringMVC
- SpringBoot實現檔案上傳功能詳解Spring Boot
- struts動態多檔案上傳實現
- 使用Spring Boot實現檔案上傳功能Spring Boot
- JAVA實現大檔案分片上傳斷點續傳Java斷點
- 前端實現檔案下載和拖拽上傳前端
- JavaScript+PHP實現影片檔案分片上傳JavaScriptPHP
- 使用spring-webmvc6實現檔案上傳SpringWebMVC
- React中使用fetch實現檔案上傳下載React
- spring-boot-route(三)實現多檔案上傳Springboot
- vue實現Excel檔案的上傳與下載VueExcel
- JavaWeb之實現檔案上傳與下載工具JavaWeb
- JavaWeb之實現檔案上傳與下載元件JavaWeb元件
- JavaWeb之實現檔案上傳與下載示例JavaWeb
- SpringMVC 通過commons-fileupload實現檔案上傳SpringMVC
- input 實現檔案上傳,並驗證檔案不大於5M
- 單個檔案上傳和批量檔案上傳
- 大檔案上傳實踐分享