You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Selenium中自动化Chrome打印对话框及验证打印内容的咨询

在Selenium中验证Chrome打印页面内容的方法

方法一:通过Chrome DevTools Protocol(CDP)获取打印预览DOM

Chrome的打印预览在独立渲染上下文运行,你可以借助CDP接口直接获取预览的DOM结构,以此验证标签、表格等内容:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless=new")
driver = webdriver.Chrome(options=options)
driver.get("目标页面URL")

# 配置打印参数(复用你已有的PrintOptions逻辑)
print_config = {
    "scaling": 0.8,
    "printBackground": True
}

# 获取打印预览的完整DOM结构
dom_result = driver.execute_cdp_cmd("DOM.getDocument", {"depth": -1})

# 解析DOM节点,提取需要验证的内容
# 示例:遍历表格节点验证数据
def traverse_dom(node):
    if node.get("nodeName") == "TABLE":
        # 处理表格逻辑,比如提取行、列文本对比预期值
        pass
    for child in node.get("children", []):
        traverse_dom(child)

traverse_dom(dom_result["root"])

方法二:生成PDF后解析内容验证

用CDP生成打印预览的PDF文件,再通过第三方库解析文本和表格,对比预期数据(更贴近实际打印效果):

import pdfplumber
import base64

# 通过CDP生成PDF
pdf_data = driver.execute_cdp_cmd("Page.printToPDF", print_config)

# 保存PDF到本地
with open("print_output.pdf", "wb") as f:
    f.write(base64.b64decode(pdf_data["data"]))

# 解析PDF内容
with pdfplumber.open("print_output.pdf") as pdf:
    for page in pdf.pages:
        # 验证标签文本
        page_text = page.extract_text()
        assert "预期标签内容" in page_text
        
        # 验证表格数据
        tables = page.extract_tables()
        if tables:
            # 对比表格表头或单元格内容
            assert tables[0][0][0] == "预期表头文本"
            assert tables[0][1][1] == "预期单元格内容"

方法三:非无头模式下操作打印预览窗口

如果使用非无头模式,打印预览会以新标签页打开,直接切换标签页后用Selenium常规定位方法验证:

from selenium.webdriver.common.by import By

# 触发页面打印操作
driver.find_element(By.ID, "print-button").click()

# 切换到打印预览标签页
driver.switch_to.window(driver.window_handles[-1])

# 验证标签内容
label_text = driver.find_element(By.CSS_SELECTOR, ".print-label").text
assert label_text == "预期标签文本"

# 验证表格行数
table_rows = driver.find_elements(By.CSS_SELECTOR, ".print-table tr")
assert len(table_rows) == 6  # 预期行数

内容的提问来源于stack exchange,提问作者rraghad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:22:11