table of contents
- unstable 0.75-1
| Chrome::DevToolsProtocol::Target(3pm) | User Contributed Perl Documentation | Chrome::DevToolsProtocol::Target(3pm) |
NAME¶
Chrome::DevToolsProtocol::Target - wrapper for talking to a page in a Target
SYNOPSIS¶
# Usually, WWW::Mechanize::Chrome automatically creates a driver for you
my $driver = Chrome::DevToolsProtocol::Target->new(
transport => $target,
);
$driver->connect( new_tab => 1 )->get
METHODS¶
"->new( %args )"¶
my $driver = Chrome::DevToolsProtocol::Target->new(
transport => $target,
auto_close => 0,
error_handler => sub {
# Reraise the error
croak $_[1]
},
);
These members can mostly be set through the constructor arguments:
EVENTS¶
"->future"¶
my $f = $driver->future();
Returns a backend-specific generic future
"->endpoint"¶
my $url = $driver->endpoint();
Returns the URL endpoint to talk to for the connected tab
"->add_listener"¶
my $l = $driver->add_listener(
'Page.domContentEventFired',
sub {
warn "The DOMContent event was fired";
},
);
# ...
undef $l; # stop listening
Adds a callback for the given event name. The callback will be removed once the return value goes out of scope.
"->remove_listener"¶
$driver->remove_listener($l);
Explicitly remove a listener.
"->log"¶
$driver->log('debug', "Warbling doodads", { doodad => 'this' } );
Log a message
"->connect"¶
my $f = $driver->connect()->get;
Asynchronously connect to the Chrome browser, returning a Future.
"->close"¶
$driver->close();
Shut down the connection to our tab and close it.
"->sleep"¶
$driver->sleep(0.2)->get;
Sleep for the amount of seconds in an event-loop compatible way
"->one_shot"¶
my $f = $driver->one_shot('Page.domContentEventFired')->get;
Returns a future that resolves when the event is received
"$chrome->json_get"¶
my $data = $driver->json_get( 'version' )->get;
Requests an URL and returns decoded JSON from the future
"$chrome->version_info"¶
print $chrome->version_info->get->{"protocolVersion"};
"$chrome->protocol_version"¶
print $chrome->protocol_version->get;
"$chrome->send_packet"¶
$chrome->send_packet('Page.handleJavaScriptDialog',
accept => JSON::true,
);
Sends a JSON packet to the remote end
"$chrome->send_message"¶
my $future = $chrome->send_message('DOM.querySelectorAll',
selector => 'p',
nodeId => $node,
);
my $nodes = $future->get;
This function expects a response. The future will not be resolved until Chrome has sent a response to this query.
"$chrome->callFunctionOn"¶
"$chrome->evaluate"¶
"$chrome->eval"¶
"$chrome->get_domains"¶
"$chrome->list_tabs"¶
my @tabs = $chrome->list_tabs->get();
"$chrome->new_tab"¶
my $new_tab = $chrome->new_tab('https://www.google.com')->get;
"$chrome->activate_tab"¶
$chrome->activate_tab( $tab )->get
Brings the tab to the foreground of the application
"$target->getTargetInfo"¶
Returns information about the current target
"$target->info"¶
Returns information about the current target
"$target->title"¶
Returns the title of the current target
"$target->getVersion"¶
Returns information about the Chrome instance we are connected to.
"$target->createTarget"¶
my $info = $chrome->createTarget(
url => 'about:blank',
width => 1280,
height => 800,
newWindow => JSON::false,
background => JSON::false,
)->get;
print $info->{targetId};
Creates a new target
"$target->attach"¶
$target->attach();
Attaches to the target set up in "targetId" and "sessionId". If a targetId is given, attaches to it and remembers the value.
SEE ALSO¶
The unofficial Chrome debugger API documentation at <https://github.com/buggerjs/bugger-daemon/blob/master/README.md#api>
Chrome DevTools at <https://chromedevtools.github.io/devtools-protocol/1-2>
REPOSITORY¶
The public repository of this module is <https://github.com/Corion/www-mechanize-chrome>.
SUPPORT¶
The public support forum of this module is <https://perlmonks.org/>.
BUG TRACKER¶
Please report bugs in this module via the Github bug queue at <https://github.com/Corion/WWW-Mechanize-Chrome/issues>
AUTHOR¶
Max Maischein "corion@cpan.org"
COPYRIGHT (c)¶
Copyright 2010-2024 by Max Maischein "corion@cpan.org".
LICENSE¶
This module is released under the same terms as Perl itself.
| 2026-02-25 | perl v5.40.1 |