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.
default_timeoutDefault timeout in seconds for chromote to wait for a Chrome DevTools Protocol response.
protocolDynamic protocol implementation. For expert use only!
new()Chromote$new(browser = Chrome$new(), multi_session = TRUE, auto_events = TRUE)browserA Browser object
multi_sessionShould multiple sessions be allowed?
auto_eventsIf TRUE, enable automatic event enabling/disabling;
if FALSE, disable automatic event enabling/disabling.
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.
Chromote$connect(multi_session = TRUE, wait_ = TRUE)multi_sessionShould multiple sessions be allowed?
wait_If FALSE, return a promise; if TRUE wait until
connection is complete.
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().
Chromote$view()
get_auto_events()auto_events value.
For internal use only.
Chromote$get_auto_events()
get_child_loop()Local later loop.
For expert async usage only.
Chromote$get_child_loop()
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.
Chromote$wait_for(p)pA promise to resolve.
new_session()Create a new tab / window
Chromote$new_session(width = 992, height = 1323, targetId = NULL, wait_ = TRUE)width, heightWidth and height of the new window.
targetIdTarget
ID of an existing target to attach to. When a targetId is provided, the
width and height arguments are ignored. If NULL (the default) a new
target is created and attached to, and the width and height
arguments determine its viewport size.
wait_If FALSE, return a promises::promise() of a new
ChromoteSession object. Otherwise, block during initialization, and
return a ChromoteSession object directly.
get_sessions()Retrieve all ChromoteSession objects
Chromote$get_sessions()A list of ChromoteSession objects
register_session()Register ChromoteSession object
Chromote$register_session(session)sessionA ChromoteSession object
For internal use only.
send_command()Send command through Chrome DevTools Protocol.
For expert use only.
Chromote$send_command(
msg,
callback = NULL,
error = NULL,
timeout = NULL,
sessionId = NULL
)msgA JSON-serializable list containing method, and params.
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 ChromoteSession with the
corresponding to send the command to.
invoke_event_callbacks()Immediately call all event callback methods.
For internal use only.
Chromote$invoke_event_callbacks(event, params)eventA single event string
paramsA list of parameters to pass to the event callback methods.
debug_messages()Enable or disable message debugging
If enabled, R will print out the
Chromote$debug_messages(value = NULL)valueIf TRUE, enable debugging. If FALSE, disable debugging.
debug_log()Submit debug log message
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)
Chromote$debug_log(...)...Arguments pasted together with paste0(..., collapse = "").
pathA path string to append to the host and port
is_active()Is there an active websocket connection to the browser process?
Chromote$is_active()
is_alive()Is the underlying browser process running?
Chromote$is_alive()
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.
Chromote$check_active()
get_browser()Retrieve Browser` object
Chromote$get_browser()
print()Summarise the current state of the object.
Chromote$print(..., verbose = FALSE)...Passed on to format() when verbose = TRUE
verboseThe print method defaults to a brief summary
of the most important debugging info; use verbose = TRUE tp
see the complex R6 object.