首页 > 解决方案 > 使用 RSelenium 打印为页面的 PDF

问题描述

我正在尝试通过在 R 中使用 Selenium 将对象保存为 PDF 来收集数据。到达打印对话框窗口时遇到了一些问题。我的策略是尝试跳过打印提示/对话框,但我无法让它工作。我试过这个:

cprof <- list(
  chromeOptions = 
    list(prefs = list(
      'profile.default_content_settings.popups' = 0L,
      'download.prompt_for_download' = FALSE,
      'download.default_directory' = 'C:\\Users\\User\\Documents\\Text',
      'download.directory_upgrade' = TRUE,
      'plugins.plugins_disabled" = 'Chrome PDF Viewer',
      'print.prompt' = FALSE
      )
    )
  )

但是打印对话框/提示仍然存在。我知道一种方法是让浏览器处于 kiosk 模式,但我还没有找到在 R 中执行此操作的方法(有几个关于如何在 Java 或 Python 中执行此操作的线程)。

提前致谢!

标签: rseleniumweb-scrapingrselenium

解决方案


我也需要弄清楚这一点。基于这些文档(请参阅“可识别的功能”部分中的“args”条目,其中引用了这些附加文档),以下内容对我有用:

eCaps <- list(
    chromeOptions = 
        list(args = list('--kiosk-printing')))

remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4445L, 
                      browserName = "chrome", extraCapabilities = eCaps)

    

然后,一旦您打开一个包含要保存的 PDF 的窗口,以下内容会自动将其保存到您指定的下载目录,而无需任何额外提示:

remDr$findElements('css selector', 'html')[[1]]$sendKeysToElement(list(key='control', 'p'))

推荐阅读