1

当我尝试使用 crrri 运行异步函数时,我收到错误消息:"Error: Cannot launch Chrome. Please add the path to your Chrome bin."

我猜错误消息试图告诉我 crrri 找不到我的 chrome 可执行文件。所以我尝试在我的函数定义上方添加以下代码(到全局环境)

chrome <- Chrome$new(bin = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", debug_port = 9224L)

但错误信息保持不变。

这是我试图运行的代码:

library(crrri)
print_pdf <- function(client) {
  Page <- client$Page
  Page$enable() %...>% {
    Page$navigate(
     url = "https://r-project.org/"
    )
    # await the load event
    Page$loadEventFired()
  } %...>% {
     Page$printToPDF() 
  } %...>% # await PDF reception
    write_base64("r_project.pdf")
}
# To modify depending on the page 
# content (JS libraries…)
perform_with_chrome(print_pdf)

预期的结果将是打印网站到保存到我的 PWD 的 pdf 文件。

4

1 回答 1

1

正如我所怀疑的,该函数正在调用它在全局环境中寻找的 HEADLESS_CHROME 路径。我通过运行检查了这一点,Sys.getenv(HEADLESS_CHROME)结果是空的。

为了改变这一点,我导入了decapitated包并使用set_chrome_env()如下:

#install.packages("decapitated")
library(decapitated)
set_chrome_env(env = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome")

这设置了我的 Chrome 可执行文件的路径,并且所有后续功能都有效。

crrri说明“您可以使用 chr_connect() 函数的 bin 参数”的手册。但我还没有弄清楚如何做到这一点。

于 2019-09-08T20:44:30.687 回答