解决selenium使用chrome下载文件(如pdf)时,反而打开浏览器的预览界面

文章目录

解决方法

在初始化浏览器的时候,添加以下配置即可:

py 复制代码
    option = webdriver.ChromeOptions()
    prefs = {
        "profile.managed_default_content_settings.images": 2,  # 禁止加载图片
        # 'permissions.default.stylesheet': 2,  # 禁止加载css
        # ====== 配置下载 =====
        'profile.default_content_settings.popups': 0,  # 取消下载确认弹窗
        # 默认下载路径
        'download.default_directory': r"C:\Users\User4\Downloads", # 这个是自定义的下载路径
        "profile.default_content_setting_values.automatic_downloads": 1,  # 允许多文件下载
        "download.prompt_for_download": False,  # To auto download the file
        "download.directory_upgrade": True,
        "plugins.always_open_pdf_externally": True
    }
    option.add_experimental_option("prefs", prefs)
    browser = webdriver.Chrome(options=option)

完整的配置

使用如下程序初始化,可以避免很多问题:

py 复制代码
from selenium import webdriver
def get_browser():
    option = webdriver.ChromeOptions()
    option.add_argument('--disable-gpu')
    option.add_argument('lang=zh_CN.UTF-8')
    # option.add_argument('headless')  # 无界面
    prefs = {
        "profile.managed_default_content_settings.images": 2,  # 禁止加载图片
        # 'permissions.default.stylesheet': 2,  # 禁止加载css
        # ====== 配置下载 =====
        'profile.default_content_settings.popups': 0,  # 取消下载确认弹窗
        # 默认下载路径
        'download.default_directory': r"C:\Users\User4\Downloads",
        "profile.default_content_setting_values.automatic_downloads": 1,  # 允许多文件下载
        "download.prompt_for_download": False,  # To auto download the file
        "download.directory_upgrade": True,
        "plugins.always_open_pdf_externally": True
    }
    option.add_experimental_option("prefs", prefs)
    browser = webdriver.Chrome(options=option)
    browser.implicitly_wait(10)  # 等待元素最多10s
    browser.set_page_load_timeout(10)  # 页面10秒后强制中断加载
    return browser

在需要下载文件时,只需要直接browser.get(网络文件URL)即可直接下载文件到配置的"C:\Users\User4\Downloads"路径下:

py 复制代码
    browser = get_browser()
	browser.get("http://xxxx/xxx.pdf") # 这里会直接下载
相关推荐
老兵发新帖19 分钟前
Ubuntu版本nvidia-smi提示版本不匹配问题,解决办法
linux·chrome·ubuntu
开开心心_Every2 小时前
音频视频转文字工具,离线语音识别免费
人工智能·游戏·微信·pdf·excel·语音识别·memcache
开开心心_Every2 小时前
电脑网速加速工具,无线有线叠加网络
网络·游戏·微信·pdf·电脑·excel·语音识别
小沈同学呀2 小时前
SpringBoot 使用Docx4j实现 DOCX 转 PDF
spring boot·后端·pdf·docx4j
开开心心就好2 小时前
免费批量抠图软件大模型,复杂倒影精准去除
网络·windows·pdf·计算机外设·电脑·硬件架构·材料工程
不会代码的小测试2 小时前
UI自动化-Grid分布式运行
运维·分布式·python·selenium·自动化
0思必得011 小时前
[Web自动化] Selenium处理iframe和frame
前端·爬虫·python·selenium·自动化·web自动化
懒羊羊大王&16 小时前
软件测试之博客系统项目实战(补充和解析部分)
selenium·单元测试·测试用例·集成测试
0思必得017 小时前
[Web自动化] Selenium处理文件上传和下载
前端·爬虫·python·selenium·自动化·web自动化
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.18 小时前
Nginx构建PC站点:root与alias详解
运维·chrome·nginx