【发布时间】:2019-07-08 21:12:02
【问题描述】:
我正在构建一个由 Selenium 提供支持的脚本,该脚本可以访问一组网站并将它们直接下载到 PDF 中。当我在我们的办公室 wifi 上时,Chromium 浏览器默认使用它找到的网络打印机,而不是我设置的已配置的“pdf”设置。
- 添加一组自定义首选项以将 Chromium 指向上次使用的打印设置 (pdf)。
- 添加 Chrome 参数 --kiosk-printing 和 --print-to-pdf
- 切换到另一个没有打印机的 wifi 网络(这适用于参数!)
我使用以下方法初始化网络驱动程序:
def init_chromium():
chrome_options = Options()
chrome_options.add_argument("--kiosk-printing")
chrome_options.add_argument("--print-to-pdf")
chrome_driver = webdriver.Chrome(options=chrome_options)
return chrome_driver
然后我遍历要访问的页面列表并使用 JS 打印带有用户提供的特殊“标签”的页面。
def page_navigation (driver, page_array, label):
for i in page_array:
print("Getting page {}".format(i))
driver.get(i)
driver.execute_script("document.title = '{}' + ' - ' + document.title".format(label))
driver.execute_script("window.print();")
print("Executed printing of {}.".format(i))
不会出现任何错误消息,但我需要一种覆盖打印配置的方法,无论我在哪个网络上。在脚本的开头/结尾更改 wifi 网络并不理想。
【问题讨论】:
-
我认为
--print-to-pdf仅在您以无头模式运行时可用。 -
很好的标注!很抱歉没有早点看到。
标签: python python-3.x selenium selenium-chromedriver