新聞中心
一 前言
在Web UI自動化測試中可能會遇到文件上傳的場景,針對該場景主要有兩種解決思路:如果是元素,可優(yōu)先嘗試send_keys() 輸入文件路徑;如果實際情況必須要處理windows文件選擇框,則可嘗試借助AutoIt實現。
二 處理方法
假設現在我們有如下一個頁面,需要進行文件上傳操作:
手工進行文件上傳的步驟為:點擊【選擇文件】->彈出windows文件選擇框->選擇文件->點擊【開始上傳】按鈕。
分析頁面源碼,如下:
從頁面源碼可知,【選擇文件】是input標簽的元素,且type=‘file’。因此,可以嘗試先定位到該元素,然后執(zhí)行send_keys方法傳入文件路徑,實現代碼如下:
browser = webdriver.Chrome()
file_path = r'E:\Python培訓計劃\selenium自動化測試\上傳測試.xlsx'
# 注意file_path使用絕對路徑:unknown error: path is not absolute
# 使用send_keys方法模擬打開windows彈框選擇上傳文件的過程
browser.find_element(By.XPATH,'//*[@id="uploadify_excel-upload_1"]').send_keys(file_path)
#點擊【開始上傳】按鈕
browser.find_element(By.ID,'startUpload').click() #上傳文件到服務器
三 總結
本文主要介紹文件上傳的處理方法,調用send_keys方法傳入文件路徑即可,無需模擬彈出windows選擇框且選擇文件的過程。通過該方法可以簡單、高效的實現選擇文件的目的,避免將處理思路卡在如何選擇文件這個問題上。
四 其他資源
關于python學習、分享、交流,筆者開通了微信公眾號【小蟒社區(qū)】,感興趣的朋友可以關注下,歡迎加入,建立屬于我們自己的小圈子,一起學python。
另外有需要云服務器可以了解下創(chuàng)新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文名稱:pythonselenium系列(10)實戰(zhàn)技巧之文件上傳-創(chuàng)新互聯
文章位置:http://fisionsoft.com.cn/article/dopshd.html