木曜日, 3月 24, 2022

Selenium から Headless Chrome on Ubuntu 20.04 のサンプル (Perl の Selenium::Remote::Driver)

IDとパスワードでログインし、ログイン後の画面のスクリーンショットを撮るPerlのサンプルソース。 
Selenium::Remote::Driver は、ユーザhogehogeがcpanmでインストールした前提。

----- ここから -----
#!/usr/bin/env perl

use strict;
use warnings;
use lib '/home/hogehoge/perl5/lib/perl5';
use Selenium::Chrome;

my $logon_url = 'https://www.hogehoge.com/';
my $user_id = 'foobar';
my $password  = 'password';
my $png_path = 'sample.png';

my $driver = Selenium::Chrome->new(
  extra_capabilities => {
    'goog:chromeOptions' => {
      args => ['headless', 'disable-gpu', 'window-size=1920,1080', 'no-sandbox' ]
    }
  }
);

$driver->get($logon_url);

$driver->find_element_by_name('user_id')->send_keys($user_id);
sleep 1;

$driver->find_element_by_name('password')->send_keys($password);
sleep 1;

$driver->find_element("//input[\@type='submit']")->click();
sleep 5;

$driver->capture_screenshot("$png_path");

$driver->quit();

exit;
----- ここまで -----

以上。

Ubuntu 20.04 でPerl用モジュール Selenium::Remote::Driver をインストール

まず、Google Chrome と  Selenium 用chromedriver、IPA日本語フォントをインストール。
つぎに、cpanm を使えるようにするインストール。
そして、Selenium::Remote::Driver のdebパッケージはないので、cpanmでインストール。
最後に .bashrc にパスを追記。

$ sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
$ sudo apt -y install wget gnupg
$ sudo wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
$ sudo apt update
$ sudo apt -y install google-chrome-stable chromium-chromedriver fonts-ipafont
$ fc-cache -fv
$
$ sudo apt -y install gcc make cpanminus
$ cpanm Selenium::Remote::Driver
$
$ vi .bashrc
 (以下を追記)
export PERL_CPANM_OPT="--local-lib=~/perl5"
export PATH=$HOME/perl5/bin:$PATH;
export PERL5LIB=$HOME/perl5/lib/perl5:$PERL5LIB;
$
$ source .bashrc

以上。