selenium调用浏览器打印功能,并保存为PDF

前言

在使用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://www.cnblogs.com/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浏览器启动命令行参数大全

  • 11
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
Java Selenium 是一个用于自动化测试的工具,它可以通过调用各种浏览器来执行测试任务。在该框架中,可以使用 Selenium WebDriver 对浏览器进行控制,并获得其渲染的页面内容。 通过 Java Selenium,可以编写代码来搜索并解析搜索结果。首先,需要创建一个 WebDriver 对象并指定所要使用的浏览器。例如,可以通过如下代码创建一个 Chrome 浏览器的实例: ```java System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); WebDriver driver = new ChromeDriver(); ``` 接下来,可以使用 WebDriver 对象访问指定网站并模拟搜索操作。例如,可以使用如下代码在谷歌搜索中输入关键字并提交搜索: ```java driver.get("https://www.google.com"); WebElement searchInput = driver.findElement(By.name("q")); searchInput.sendKeys("Java Selenium"); searchInput.submit(); ``` 然后,可以使用 WebDriver 对象获取搜索结果页面的源代码或特定元素的文本。例如,可以使用如下代码获取搜索结果中的标题和描述: ```java List<WebElement> searchResults = driver.findElements(By.xpath("//div[@class='g']")); for (WebElement result : searchResults) { WebElement titleElement = result.findElement(By.tagName("h3")); WebElement descriptionElement = result.findElement(By.className("s")); String title = titleElement.getText(); String description = descriptionElement.getText(); System.out.println("标题:" + title); System.out.println("描述:" + description); } ``` 以上代码通过定位搜索结果的特定元素,提取了标题和描述的文本,并输出到控制台。 总结来说,Java Selenium 可以通过调用浏览器,模拟搜索操作,并通过解析页面内容来获取搜索结果。以上代码只是简单示例,实际应用中可能需要根据具体情况进行更多的定位和解析操作。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值