可以从RSelenium调用的浏览器在后台运行

dim*_*_ps 3 r rselenium

我正在使用Windows 7机器.是否可以从RSelenium库运行remoteDriver()$ open()并让浏览器在后台运行(即不可见).

谢谢

ale*_*emm 5

是的,这是可能的.RSeleniumFirefox 的默认浏览器是.然而,RSelenium甚至支持使用无头浏览PhantomJS,在各个小插图中详细描述了无头浏览.

一般来说,PhanomJS在Windows 7下利用你只需要

  • 下载PhantomJS并将文件夹路径phantomjs.exe添加到系统Environment Variable菜单中的用户或系统PATH变量的附加条目(例如C:\Program Files\phantomjs-1.9.7-windows)注意:phantomjs.exe它本身不是路径规范的一部分.
  • 替换代码开头和结尾的代码片段,如下所述

默认浏览:

checkForServer()
startServer()
remDrv <- remoteDriver()
remDrv$open()

...

remDrv$quit()
remDrv$closeServer()
Run Code Online (Sandbox Code Playgroud)

无头浏览:

pJS <- phantom()
remDrv <- remoteDriver(browserName = 'phantomjs')
remDrv$open()

...

remDrv$close()
pJS$stop()
Run Code Online (Sandbox Code Playgroud)

其他建议

命令行参数和POODLE

注意可以传递给的命令行参数phantom.

例如,PhantomJS默认使用SSLv3,自POODLE以来,每个服务器都不鼓励这样做.

解决方法是调用phantom--ssl-protocol=tlsv1:

pJS <- phantom(extras = c('--ssl-protocol=tlsv1'))
Run Code Online (Sandbox Code Playgroud)

时间问题

PhantomJS经常发生的一件事是计时问题.适用于Firefox和Chrome等浏览器的代码会破坏PhantomJS,因为PhantomJS太快了.

您可以通过Sys.sleep在不同的remoteDriver呼叫之间发出呼叫来解决此问题.