Selenium3自動化測試【30】檔案下載
阿新 • • 發佈:2022-05-05
引言
Selenium也提供了檔案下載的方案,以下載最新的Python版本為例,如圖所示。單擊【Download Python ..*】,下載最新的Python版本,圖所示。
1. FireFox瀏覽器
以FireFox瀏覽器為例,下載Python的最新版本。FireFox瀏覽器要實現檔案下載,需要做些設定。
對於FireFox,需要我們設定其Profile:
- browser.download.dir:指定下載路徑;
- browser.download.folderList:設定成 0 表示下載到桌面;設定成 1 表示下載到預設路徑;設定成 2 表示使用自定義下載路徑;
- browser.download.manager.showWhenStarting:在開始下載時是否顯示下載管理器;
- browser.helperApps.neverAsk.saveToDisk:對所給出檔案型別不再彈出框進行詢問。
FireFox需要針對每種檔案型別進行設定,這裡需要我們查詢對應檔案的MIME型別,下載Python的最新版本,下載的檔案型別為exe,因此型別為'application/octet-stream'。
常見檔案的MIME型別,如表所示。
更多對應檔案的MIME型別,可以訪問《MIME 參考手冊》:
https://www.w3school.com.cn/media/media_mimeref.asp進行檢視
通過FireFox瀏覽器,實現下載檔案程式碼如下:
from selenium import webdriver from time import sleep profile = webdriver.FirefoxProfile() # 設定成 2 表示使用自定義下載路徑;設定成 0 表示下載到桌面;設定成 1 表示下載到預設路徑 profile.set_preference("browser.download.folderList", 2) #在開始下載時是否顯示下載管理器 profile.set_preference("browser.download.manager.showWhenStarting", False) # 設定預設的儲存資料夾 profile.set_preference("browser.download.dir", r"D:\Demo") # 設定自動儲存的檔案型別,如果FireFox不能自動儲存,一定是檔案型別不對 # 對所給出檔案型別,不再彈出框進行詢問 profile.set_preference("browser.helperApps.neverAsk.saveToDisk", 'application/octet-stream') driver = webdriver.Firefox(FireFox_profile=profile) driver.implicitly_wait(10) # 訪問Python下載頁,下載最新版本的Python driver.get('https://www.python.org/downloads/') driver.maximize_window() sleep(2) # 單擊【Download the latest version for Windows】按鈕。 driver.find_element_by_xpath('//*[@id="touchnav-wrapper"]/header/div/div[2]/div/div[3]/p/a').click()
程式碼執行結束後,等待一段時間,可以在D盤Demo資料夾下看到下載的Python3.8.exe。
2.Chrome瀏覽器
Chrome瀏覽器實現檔案下載,也需要做些設定,Options設定如下:
- download.default_directory:設定下載路徑;
- profile.default_content_settings.popups:設定為 0 禁止彈出視窗。
通過Chrome瀏覽器,實現下載檔案程式碼如下:
from selenium import webdriver from time import sleep options = webdriver.ChromeOptions() prefs = { "download.prompt_for_download": False, 'download.default_directory': 'D:\\Demo', #設定下載目錄 "plugins.always_open_pdf_externally": True, 'profile.default_content_settings.popups': 0, #設定為0,禁止彈出視窗 } options.add_experimental_option('prefs', prefs) driver = webdriver.Chrome(chrome_options=options) driver.get('https://www.python.org/downloads/') driver.maximize_window() sleep(2) # 單擊【Download the latest version for Windows】按鈕。 driver.find_element_by_xpath('//*[@id="touchnav-wrapper"]/header/div/div[2]/div/div[3]/p/a').click()
精講視訊
如果你覺的文章讀的不過癮,可以檢視詳細的視訊教程。
- 【2021】UI自動化測試:Selenium3自動化測試
地址:https://ke.qq.com/course/3172187?tuin=9c43f38e -
《全棧測試系列視訊》課程
地址:https://ke.qq.com/course/2525707?tuin=9c43f38e
測試學習路線如下
熱銷圖書
圖書京東、噹噹有售
京東: https://item.jd.com/12784287.html
噹噹: http://product.dangdang.com/29177828.html