admin 管理员组

文章数量: 887006

前言

在使用selenium处理浏览器功能时,无法正常检测到或无法定位到你想处理的功能。
而浏览器的启动参数可以帮我们实现很多功能。

点击查看——Chrome浏览器启动命令行参数大全

功能详情

代码如下(示例):

# -*- coding: UTF8 -*-
import json
from selenium import webdriver


#设置打印机的纸张大小、打印类型、保存路径等
chrome_options = webdriver.ChromeOptions()
    settings = {
        "recentDestinations": [{
            "id": "Save as PDF",
            "origin": "local",
            "account": ""
        }],
        "selectedDestinationId": "Save as PDF",
        "version": 2,
        "isHeaderFooterEnabled": False,

        # "customMargins": {},
        #"marginsType": 2,#边距(2是最小值、0是默认)
        # "scaling": 100,
        # "scalingType": 3,
        # "scalingTypePdf": 3,
        #"isLandscapeEnabled": True,  # 若不设置该参数,默认值为纵向
        "isCssBackgroundEnabled": True,
        "mediaSize": {
            "height_microns": 297000,
            "name": "ISO_A4",
            "width_microns": 210000,
            "custom_display_name": "A4"
        },
    }

    chrome_options.add_argument('--enable-print-browser')
    # chrome_options.add_argument('--headless') #headless模式下,浏览器窗口不可见,可提高效率
    prefs = {
        'printing.print_preview_sticky_settings.appState': json.dumps(settings),
        'savefile.default_directory': 'C:\\Users\\admin\\Desktop'  # 此处填写你希望文件保存的路径,可填写your file path默认下载地址
    }

    chrome_options.add_argument('--kiosk-printing')  # 静默打印,无需用户点击打印页面的确定按钮
    chrome_options.add_experimental_option('prefs', prefs)

    driver = webdriver.Chrome("../chromedriver.exe", options=chrome_options)
    driver.get('https://wwwblogs/new-june/p/14509601.html')
    driver.maximize_window()#浏览器最大化
    driver.execute_script(
        'document.title="my_test_file3.pdf";window.print();')  # 利用js修改网页的title,该title最终就是PDF文件名,利用js的window.print可以快速调出浏览器打印窗口,避免使用热键ctrl+P
    # driver.close()#关闭当前页
    driver.quit()

点击查看——Chrome浏览器启动命令行参数大全

本文标签: 保存为 浏览器 功能 selenium pdf