Selenium Chrome 另存为 pdf 更改下载文件夹

2023-11-21

我想将网站下载为 pdf 文件,它工作正常,但它应该将文件下载到特定路径,而不是只是将文件下载到我的默认下载目录。

import json
from selenium import webdriver

appState = {
    "recentDestinations": [
        {
            "id": "Save as PDF",
            "origin": "local"
        }
    ],
    "selectedDestinationId": "Save as PDF",
    "version": 2,
    'download.default_directory': 'C:\\Users\\Oli\\Google Drive',
    "download.directory_upgrade": True
}

profile = {'printing.print_preview_sticky_settings.appState': json.dumps(appState)}

chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option('prefs', profile)
chrome_options.add_argument('--kiosk-printing')

driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get('https://www.google.com/')
driver.execute_script('window.print();')

顺便问一下,有人想到用特定名称来保护文件吗?


The download.default_directory设置仅适用于下载的内容。 Chrome 以不同的方式处理页面上保存的文件。要更改页面打印输出的默认文件夹,只需设置savefile.default_directory值代替。

因此,在自定义位置打印为 pdf 的完整示例:

import json
from selenium import webdriver

appState = {
    "recentDestinations": [
        {
            "id": "Save as PDF",
            "origin": "local",
            "account": ""
        }
    ],
    "selectedDestinationId": "Save as PDF",
    "version": 2
}

profile = {'printing.print_preview_sticky_settings.appState': json.dumps(appState),
           'savefile.default_directory': 'path/to/dir/'}

chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option('prefs', profile)
chrome_options.add_argument('--kiosk-printing')

driver = webdriver.Chrome(options=chrome_options)
driver.get(url)
driver.execute_script('window.print();')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium Chrome 另存为 pdf 更改下载文件夹 的相关文章

随机推荐

  • 如何在 Swift 中实现 NSDocument 方法 -canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo: ?

    在我的应用程序中 NSDocument子类关键任务硬件 用户真的不想意外关闭文档 所以 我已经实现了canCloseDocumentWithDelegate 显示一个NSAlert并在关门前询问 我现在正在尝试在用 Swift 编写的应用程
  • 在执行 Replace with jQuery 时可以忽略字符串中的 HTML 吗? [复制]

    这个问题在这里已经有答案了 可能的重复 替换字符串中的单词 但忽略 HTML 调用 Replace 时是否可以忽略 HTML 元素 示例代码 myText replace new RegExp searchString gi span cl
  • 字符数组是否需要调用delete[]与delete?

    我正在利用一位同事编写的库并发现valgrind正在吐出与以下相关的错误delete 问题是存在 char 数组的分配 例如 char s new char n 后来跟进delete s 代替delete s 他告诉我差别真的在于delet
  • SDL Tridion UI 2012 上的持续更新预览警报

    我正在尝试在某些测试 默认 页面上建立新的 SDL Tridion UI 2012 功能 尽管我多次单击 更新预览 但我不断检索 此页面的预览不是最新的 警报 我使用的是虚拟图像 因此除了我自己之外 其他任何人都无法编辑页面 不管哪个组件发
  • PHP 文本差异脚本

    您知道查找文本 diff 的好方法 脚本吗 您可以尝试使用PEAR Text Diff它提供基于文本的差异引擎并呈现多种差异输出格式
  • 如何检查UpdatePanel是否正在回发?

    有没有办法确定是否
  • 获取当前GCC异常模型

    g 是使用以下任一构建的DWARF2 sjlj or seh异常模型 MinGW 构建提供各种构建g 具有不同的异常模型 我希望能够确定gcc工具链正在使用什么异常模型 有没有g 将转储编译器默认异常模型的参数 Edit 最初 我正在测试中
  • 在 UIPageViewController 中禁用/启用滚动

    I got a viewController它继承自UIPageViewController interface PageScrollViewController UIPageViewController 现在我想知道如何启用和禁用滚动UI
  • strncasecmp 和 strcasecmp 尚未声明

    我尝试在 Code Blocks 中使用 MinGW 编译 Assimp 但出现以下错误 assimp 3 3 1 assimp 3 3 1 code StringComparison h In function int Assimp AS
  • 如何在 Mac Yosemite 上卸载 Qt Creator

    我努力了this但是当我这样做时 终端会要求我输入密码 不知道这个密码是什么 我的 mac 上没有任何密码 登录时没有输入任何密码 并且无法通过下面的第一步 sudo QtSDK SDKMaintenanceTool app Content
  • Python中发送数据Curl/Json

    我正在尝试在 python 中发出这两个请求 要求1 curl X POST H Content Type application json d auth token auth1 widget id1 title Something1 te
  • 如何使用 System.out.printf

    我尝试使用printf但我有意想不到的错误 这段代码有什么问题 System out printf The date is d d d month day year 我想打印日期和month day and year是双变量 根据格式化文档
  • 如果包含的 DIV 属性发生更改,Firefox 会重新启动 Flash 影片

    我在某些 DIV 中嵌入了 Flash 影片 问题是 当我动态更改封闭 DIV 的任何属性时 Firefox 不是其他浏览器 会重新启动 重新初始化 Flash 影片 从而有效地重置整个进度 例如 选择上传的文件等 有某种解决方法吗 尝试隐
  • Java Streams 根据属性对条目进行分组,但收集 Map 中对象的属性

    抱歉这个奇怪的标题 基本上我想做的事情如下 比方说 我有一个名为 详细信息 的课程 class Detail String title Project project 使用 Streams 如您所见 我可以按标题对详细信息进行分组 但是 我
  • SQLite中有自动增量吗?

    我正在尝试创建一个自动递增的表primary key in Sqlite3 我不确定这是否真的可能 但我希望只需要指定其他字段 例如 CREATE TABLE people id integer primary key auto incre
  • SKFieldNode 磁性节点吸引力

    我目前正在使用 iOS 8 SpriteKit API 并且很难使用 SKFieldNode 创建有吸引力的磁力 我可以很好地产生相反的磁力 但我无法反转磁场 这是我目前拥有的 touchField SKFieldNode magnetic
  • SignTool 错误:ISignedCode::Sign 返回错误:0x80092006

    我正在使用受信任的 CA 颁发的证书签署 EXE 程序 我正在使用 Windows SDK v6 0a 中的signtool exe 该证书位于计算机存储中的 个人 文件夹中 我的命令行是 sign sm n My company d My
  • 如何防止我的 ASP.NET 网站被屏幕抓取? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 如何防止我的 asp net 3 5 网站被竞争对手的屏幕抓取 理想情况下 我想确保没有网络机器人或屏幕抓取程序可以从我的网站提取数据 有没有办法检测是否有网络机器人或屏幕抓取工具正
  • 我可以相信 iOS 设备时钟是正确的吗?

    我正在开发一个应用程序 它将通过我控制的服务器在用户之间同步数据 目前 我正在记录每个设备上更改的 UTC 时间 这有助于确定哪些数据是最新的 服务器或设备上的数据 我可以相信 iPhone 和 iPad 的 UTC 时间是准确的吗 如果不
  • Selenium Chrome 另存为 pdf 更改下载文件夹

    我想将网站下载为 pdf 文件 它工作正常 但它应该将文件下载到特定路径 而不是只是将文件下载到我的默认下载目录 import json from selenium import webdriver appState recentDesti