selenium--文件下载基于Python(兼容火狐和Chrome)

通过selenium模拟文件下载,其实实现原理很简单,通常我们通过Chrome或火狐下载文件,点击一下就可以直接下载,不会弹出弹窗,是因为安装浏览器的时候已经默认初始化过了,已经配置过下载路径了。但是我们通过selenium启动浏览器的时候,启动的是一个纯净的环境,没有初始化配置,所以我们直接设置一下初始化配置,就可以直接下载了。废话少说,直接上代码:

from selenium import webdriver
from time import sleep

# 火狐
# profile = webdriver.FirefoxProfile()
# profile.set_preference("browser.download.dir", "C:\\Users\\saas\\Desktop\\test_download")
# profile.set_preference('browser.download.manager.showWhenStarting', False)  # 在开始下载时是否显示下载管理器
# profile.set_preference("browser.download.folderList", 2)  # browser.download.folderList 设置Firefox的默认 下载 文件夹。0是桌面;1是“我的下载”;2是自定义
# profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream, application/vnd.ms-excel, text/csv, application/zip")
# driver = webdriver.Firefox(firefox_profile=profile)
# driver.get('http://sahitest.com/demo/saveAs.htm')
# driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
# sleep(3)
# driver.quit()

# Chrome
options = webdriver.ChromeOptions()
prefs = {'profile.default_content_settings.popups': 0,  # 设置为 0 禁止弹出窗口
         'download.default_directory': 'C:\\Users\\saas\\Desktop\\test_download'}  # 设置下载路径
options.add_experimental_option('prefs', prefs)

driver = webdriver.Chrome(chrome_options=options)
driver.get('http://sahitest.com/demo/saveAs.htm')
driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
sleep(3)
driver.quit()

文中的链接为测试链接,亲测有效。

猜你喜欢

转载自blog.csdn.net/lb245557472/article/details/80065495
今日推荐