A Chromote object represents the browser as a whole, and it can have
multiple targets, which each represent a browser tab. In the Chrome
DevTools Protocol, each target can have one or more debugging sessions to
control it. A ChromoteSession object represents a single session.
A Chromote object can have any number of ChromoteSession objects as
children. It is not necessary to create a Chromote object manually. You can
simply call:
b <- ChromoteSession$new()and it will automatically create a Chromote object if one has not already
been created. The chromote package will then designate that Chromote
object as the default Chromote object for the package, so that any future
calls to ChromoteSession$new() will automatically use the same Chromote.
This is so that it doesn't start a new browser for every ChromoteSession
object that is created.
Public fields
default_timeoutDefault timeout in seconds for chromote to wait for a Chrome DevTools Protocol response.
protocolDynamic protocol implementation. For expert use only!
Methods
Method new()
Arguments
browserA
Browserobjectmulti_sessionShould multiple sessions be allowed?
auto_eventsIf
TRUE, enable automatic event enabling/disabling; ifFALSE, disable automatic event enabling/disabling.
Method connect()
Re-connect the websocket to the browser. The Chrome browser automatically closes websockets when your computer goes to sleep; you can use this to bring it back to life with a new connection.
Method view()
Display the current session in the browser
If a Chrome browser is being used, this method will open a new tab
using your Chrome browser. When not using a Chrome browser, set
options(browser=) to change the default behavior of browseURL().
Method auto_events_enable_args()
Set or retrieve the enable command arguments for a domain. These
arguments are used for the enable command that is called for a domain,
e.g. Fetch$enable(), when accessing an event method.
Method wait_for()
Wait until the promise resolves
Blocks the R session until the promise (p) is resolved. The loop from
$get_child_loop() will only advance just far enough for the promise to
resolve.
Method new_session()
Create a new tab / window
Arguments
width, heightWidth and height of the new window.
targetIdTarget ID of an existing target to attach to. When a
targetIdis provided, thewidthandheightarguments are ignored. If NULL (the default) a new target is created and attached to, and thewidthandheightarguments determine its viewport size.wait_If
FALSE, return apromises::promise()of a newChromoteSessionobject. Otherwise, block during initialization, and return aChromoteSessionobject directly.
Method get_sessions()
Retrieve all ChromoteSession objects
Method register_session()
Register ChromoteSession object
Method send_command()
Send command through Chrome DevTools Protocol.
For expert use only.
Arguments
msgA JSON-serializable list containing
method, andparams.callbackMethod to run when the command finishes successfully.
errorMethod to run if an error occurs.
timeoutNumber of milliseconds for Chrome DevTools Protocol execute a method.
sessionIdDetermines which
ChromoteSessionwith the corresponding to send the command to.
Method debug_log()
Submit debug log message
Examples
b <- ChromoteSession$new()
b$parent$debug_messages(TRUE)
b$Page$navigate("https://www.r-project.org/")
#> SEND {"method":"Page.navigate","params":{"url":"https://www.r-project.org/"}| __truncated__}
# Turn off debug messages
b$parent$debug_messages(FALSE)Method url()
Create url for a given path
Method check_active()
Check that a chromote instance is active and alive. Will automatically reconnect if browser process is alive, but there's no active web socket connection.
Method close()
Close the Browser object
Arguments
waitIf an integer, waits a number of seconds for the process to exit, killing the process if it takes longer than
waitseconds to close. Usewait = TRUEto wait for 10 seconds, orwait = FALSEto close the connection without waiting for the process to exit. Only applies when Chromote is connected to a local process.
