- LocalLib.git
- SeleniumRemoteDriver.pm
This file ( 2kB ) exceeds the allowed full mode (48 kb) size.
The editor full hight is disabled, only scrolling is allowed..
If you wish to edit a file, it is recommended to use the scroll mode as some users do not like the full height
mode, although some users like it.
use v5.34;
use FindBin;
use Data::Printer;
use Selenium::Chrome;
use Selenium::Firefox;
use Feature::Compat::Class;
package SeleniumRemoteDriver;
#$Selenium::Remote::Driver::FORCE_WD3=1;
system( 'pkill chrome' ); # in case previous run crashed
system( 'pkill chromium' ); # in case previous run crashed
# chromeOptions args (headless, disable images, etc):
my @chromeArgs = qw(
headless
no-sandbox
disable-gpu
window-size=1024,768
remote-debugging-port=9222
);
my @firefoxArgs = qw( -headless ); # doesn't work
class SeleniumDriver {
field $disable_images :reader :param //= 0;
field $debug :reader :param //= 0;
# create a Selenium::Chrome object
method chrome {
push @chromeArgs, 'blink-settings=imagesEnabled=false'
if $disable_images; # say $disable_images;
my $driver = Selenium::Chrome->new(
debug => $debug,
logfile => "$FindBin::Bin/log.txt",
pageLoadStrategy => 'eager', # probably makes no difference to page-load speed
extra_capabilities => {
'goog:chromeOptions' => {
# prefs => { 'profile.managed_default_content_settings.images' => 2 }, # doesn't work
prefs => { },
args => \@chromeArgs,
},
}
);
if ($debug) {
# Data::Printer::p $driver->available_engines();
# Data::Printer::p $driver->get_capabilities();
Data::Printer::p $driver->get_user_agent();
}
return $driver;
}
# create a Selenium::Firefox object
method firefox {
my $driver = Selenium::Firefox->new(
extra_capabilities => {
'moz:firefoxOptions' => { args => \@firefoxArgs }
}
);
return $driver;
}
}
1;