溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python+selenium+autoit實(shí)現(xiàn)文件上傳

發(fā)布時(shí)間:2020-07-08 22:00:07 來源:網(wǎng)絡(luò) 閱讀:11873 作者:小強(qiáng)測試 欄目:軟件技術(shù)

問題

在做web端ui層自動(dòng)化的時(shí)候會(huì)碰到文件上傳的操作,經(jīng)常有朋友問到,這里總結(jié)一下

解決方案

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

python+selenium+autoit實(shí)現(xiàn)文件上傳

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

driver.find_element('name','file').send_keys('./小強(qiáng)測試品牌.png')

第二種:就是第一種除外的,實(shí)現(xiàn)起來較為麻煩,這里用到了autoit,大致步驟如下:

1、下載并安裝autoit,之后在開始菜單可以看到如下

python+selenium+autoit實(shí)現(xiàn)文件上傳

AutoIt Windows Info 用于識(shí)別Windows控件信息

Compile Script to.exe 用于將AutoIt生成 exe 執(zhí)行文件

Run Script 用于執(zhí)行AutoIt腳本

SciTE Script Editor 用于編寫AutoIt腳本

2、上傳功能如下

python+selenium+autoit實(shí)現(xiàn)文件上傳

3、識(shí)別元素,主要是上圖中的文件名輸入框和打開按鈕,使用AutoIt Windows Info完成,記錄結(jié)果如下:

文件名輸入框的class 為“Edit”,Instance為“1”

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

4、編寫腳本,使用SciTE Script Editor,內(nèi)容如下:

ControlFocus("文件上傳", "","Edit1")

WinWait("[CLASS:#32770]","",10)

ControlSetText("文件上傳", "", "Edit1","D:python_workspaceQiangSEAutopic小強(qiáng)測試品牌.jpg")

Sleep(2000)

ControlClick("文件上傳", "","Button1");

上述代碼中特別需要注意“文件上傳”字樣是你點(diǎn)擊上傳按鈕之后彈出的對話框的title,可能每個(gè)系統(tǒng)會(huì)不一樣

5、驗(yàn)證腳本

保證頁面的上傳對話框打開,然后運(yùn)行腳本tools>go

6、打開Compile Script to.exe工具,將其生成為exe可執(zhí)行文件

python+selenium+autoit實(shí)現(xiàn)文件上傳

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庫,識(shí)別對話框句柄,進(jìn)而操作

SendKeys 庫

keybd_event 模擬按鍵


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI