python+selenium+autoit實(shí)現(xiàn)文件上傳功能
問(wèn)題
在做web端ui層自動(dòng)化的時(shí)候會(huì)碰到文件上傳的操作,經(jīng)常有朋友問(wèn)到,這里總結(jié)一下
解決方案
第一種:type=file的上傳文件,類似如下的
使用類似這樣的代碼就可以完成:
driver.find_element('name','file').send_keys('./小強(qiáng)測(cè)試品牌.png')
第二種:就是第一種除外的,實(shí)現(xiàn)起來(lái)較為麻煩,這里用到了autoit,大致步驟如下:
1、下載并安裝autoit,之后在開(kāi)始菜單可以看到如下
AutoIt Windows Info 用于識(shí)別Windows控件信息
Compile Script to.exe 用于將AutoIt生成 exe 執(zhí)行文件
Run Script 用于執(zhí)行AutoIt腳本
SciTE Script Editor 用于編寫AutoIt腳本
2、上傳功能如下
3、識(shí)別元素,主要是上圖中的文件名輸入框和打開(kāi)按鈕,使用AutoIt Windows Info完成,記錄結(jié)果如下:
文件名輸入框的class 為“Edit”,Instance為“1”
打開(kāi)按鈕的class 為“Button”,Instance為“1”
4、編寫腳本,使用SciTE Script Editor,內(nèi)容如下:
ControlFocus("文件上傳", "","Edit1") WinWait("[CLASS:#32770]","",10) ControlSetText("文件上傳", "", "Edit1","D:python_workspaceQiangSEAutopic小強(qiáng)測(cè)試品牌.jpg") Sleep(2000) ControlClick("文件上傳", "","Button1");
上述代碼中特別需要注意“文件上傳”字樣是你點(diǎn)擊上傳按鈕之后彈出的對(duì)話框的title,可能每個(gè)系統(tǒng)會(huì)不一樣
5、驗(yàn)證腳本
保證頁(yè)面的上傳對(duì)話框打開(kāi),然后運(yùn)行腳本tools>go
6、打開(kāi)Compile Script to.exe工具,將其生成為exe可執(zhí)行文件
7、python腳本中調(diào)用
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)
其他
其實(shí)還有其他的解決方法,感興趣的自行研究吧,比如還可以利用如下的方式:
Python pywin32庫(kù),識(shí)別對(duì)話框句柄,進(jìn)而操作
SendKeys 庫(kù)
keybd_event 模擬按鍵
總結(jié)
以上所述是小編給大家介紹的python+selenium+autoit實(shí)現(xiàn)文件上傳,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Python SELENIUM上傳文件或圖片實(shí)現(xiàn)過(guò)程
- Selenium瀏覽器自動(dòng)化如何上傳文件
- selenium+python實(shí)現(xiàn)文件上傳操作的方法實(shí)例
- Python爬蟲中Selenium實(shí)現(xiàn)文件上傳
- Python selenium文件上傳下載功能代碼實(shí)例
- 基于python的selenium兩種文件上傳操作實(shí)現(xiàn)詳解
- Python中selenium實(shí)現(xiàn)文件上傳所有方法整理總結(jié)
- Python selenium文件上傳方法匯總
- Python中Selenium上傳文件的幾種方式
相關(guān)文章
Python求兩個(gè)文本文件以行為單位的交集、并集與差集的方法
這篇文章主要介紹了Python求兩個(gè)文本文件以行為單位的交集、并集與差集的方法,涉及Python文本文件與集合運(yùn)算的相關(guān)技巧,需要的朋友可以參考下2015-06-06python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)
這篇文章主要介紹了python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下2021-04-04Perl中著名的Schwartzian轉(zhuǎn)換問(wèn)題解決實(shí)現(xiàn)
這篇文章主要介紹了Perl中著名的Schwartzian轉(zhuǎn)換問(wèn)題解決實(shí)現(xiàn),本文詳解講解了Schwartzian轉(zhuǎn)換涉及的排序問(wèn)題,并同時(shí)給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-06-06python批量將PDF文件轉(zhuǎn)換成圖片的實(shí)現(xiàn)代碼
這篇文章使用python編寫了一個(gè)小腳本,目的是為了實(shí)現(xiàn)批量將PDF文件轉(zhuǎn)換成圖片,文中有詳細(xì)的實(shí)現(xiàn)代碼,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以參考閱讀一下2023-08-08django 多數(shù)據(jù)庫(kù)及分庫(kù)實(shí)現(xiàn)方式
這篇文章主要介紹了django 多數(shù)據(jù)庫(kù)及分庫(kù)實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python數(shù)據(jù)處理numpy.median的實(shí)例講解
下面小編就為大家分享一篇Python數(shù)據(jù)處理numpy.median的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04