webdriver高级应用- 无人工干预地自动下载某个文件
生活随笔
收集整理的這篇文章主要介紹了
webdriver高级应用- 无人工干预地自动下载某个文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在網頁上下載文件時,通常需要人為設定下載文件并選擇保持路徑,這樣就無法實現完全自動的下載過程。下面實現基于firefox瀏覽器的全自動化文件下載操作:
?
#encoding=utf-8 from selenium import webdriver import unittest, timeclass TestDemo(unittest.TestCase):def setUp(self):# 創建一個FirefoxProfile實例,用于存放自定義配置profile = webdriver.FirefoxProfile() #chrome是另外的設置方法# 指定下載路徑,默認只會自動創建一級目錄,如果指定了# 多級不存在的目錄,將會下載到默認路徑profile.set_preference('browser.download.dir', 'd:\\iDownload')# 將browser.download.folderList設置為2,表示將文件下載到指定路徑# 設置成2表示使用自定義下載路徑;# 設置成0表示下載到桌面;設置成1表示下載到默認路徑profile.set_preference('browser.download.folderList', 2)# browser.helperApps.alwaysAsk.force對于未知的 MIME 類型文件會彈出窗口# 讓用戶處理,默認值為true,設定為False表示不會記錄打開未知 MIME 類型# 文件的方式profile.set_preference("browser.helperApps.alwaysAsk.force", False)# 在開始下載時是否顯示下載管理器profile.set_preference('browser.download.manager.showWhenStarting',\False)# 設定為 False 會把下載框進行隱藏profile.set_preference("browser.download.manager.useWindow", False)# 默認值為 true,設定為 False 表示不獲取焦點profile.set_preference("browser.download.manager. focusWhenStarting",\False)# 下載.exe文件彈出警告,默認值是 true,設定為False 則不會彈出警告框profile.set_preference("browser.download.manager.alertOnEXEOpen",\False)# browser.helperApps.neverAsk.openFile表示直接打開下載文件,不顯示確認框# 默認值為空字符串,下行代碼行設定了多種文件的 MIME類型,# 例如application/exe,表示.exe類型的文件,# application/excel表示 Excel 類型的文件profile.set_preference("browser.helperApps.neverAsk.openFile", \"application/pdf")# 對所給出文件類型不再彈出框進行詢問,直接保存到本地磁盤profile.set_preference('browser.helperApps.neverAsk.saveToDisk', \'application/zip, application/octet-stream')# browser.download.manager.showAlertOnComplete設定下載文件結束后是否顯示下#載完成提示框,默認為true,設定為False表示下載完成后不顯示下載完成提示框profile.set_preference("browser.download.manager. showAlertOnComplete",\False);# browser.download.manager.closeWhenDone設定下載結束后是否自動# 關閉下載框,默認值為true,設定為False 表示不關閉下載管理器profile.set_preference("browser.download.manager.closeWhenDone",\False)# self.driver = webdriver.Ie(executable_path="c:\\IEDriverServer")# 啟動瀏覽器時,通過firefox_profile參數# 將自動以配置添加到FirefoxProfile對象中self.driver = webdriver.Firefox(executable_path="e:\\geckodriver",\firefox_profile = profile)def test_dataPicker(self):# 訪問WebDriver驅動Firefox的驅動文件下載網址url1 = "https://github.com/mozilla/geckodriver/releases"self.driver.get(url1)# 選擇下載zip類型文件,使用application/zip指代此類型文件 self.driver.find_element_by_xpath\('//strong[.="geckodriver-v0.19.1-arm7hf.tar.gz"]').click()# 等待加載下載文件time.sleep(10)# 訪問Python2.7.12文件下載頁面,下載擴展名為msi文件# 使用application/octet-stream來指明此類文件類型url = "https://www.python.org/downloads/release/python-2712/"self.driver.get(url)# 找到Python2.7.12下載頁面中鏈接文字為“Windows x86-64 MSI installer”# 的鏈接頁面元素,點擊進行無人工干預的下載Python2.7.12解釋器文件 self.driver.find_element_by_link_text\("Windows x86-64 MSI installer").click()# 等待文件下載完成,根據各自的網絡帶寬情況設定等待相應的時間time.sleep(100)def tearDown(self):self.driver.quit()if __name__ == '__main__':unittest.main()?
轉載于:https://www.cnblogs.com/qingqing-919/p/8716176.html
總結
以上是生活随笔為你收集整理的webdriver高级应用- 无人工干预地自动下载某个文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: First Steps with Ten
- 下一篇: JVM体系结构