将屏幕快照另存为R Selenium中的变量 [英] Save screenshot as variable in R Selenium

查看:47
本文介绍了将屏幕快照另存为R Selenium中的变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将Selenium的屏幕截图存储到一个变量中,以便确定其高度:

I'm trying to store a screenshot from Selenium to a variable so I can work out it's height:

library(RSelenium)
library(magick)
server <- remoteDriver(remoteServerAddr = "localhost",
                      port = 4444,
                      browserName = "firefox")
server$open()
server$navigate("https://google.com")
screenshot <- server$screenshot(display = FALSE)
image_info(screenshot)

错误:"image"参数不是magick图像对象.

Error: The 'image' argument is not a magick image object.

奇怪的是,如果我将server $ screenshot输出到文件并将其加载回:

Strangely, this works if I output server$screenshot to a file and load it back in:

server$screenshot(display = FALSE, file"/home/person/img.png")
blankPNG <-  image_read("/home/person/img.png")

知道服务器屏幕截图返回了"base64编码的PNG",但是我该如何读取呢? print(screenshot)返回一个字符串.

I know that server$screenshot returns a "base64 encoded PNG", but how can I read it as such? print(screenshot) returns a string.

推荐答案

最后找到了它:

library('base64enc')

# this returns a list of base64 characters
screenshot <- server$screenshot(display = FALSE)

# converts the base64 characters into a vector
screenshot <- base64decode(toString(screenshot), output = NULL)

# reads the vector as stores it as a PNG
screenshot <- image_read(screenshot)

这篇关于将屏幕快照另存为R Selenium中的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆