PHPでブラウザを自動操作する方法

PHPでブラウザを自動操作する方法 PHP
記事内に広告が含まれています。

この記事では、PHPを使ってブラウザを自動操作する方法について紹介しています

ブラウザで特定の作業を何度か繰り返すことがあったので、PHPを使ってブラウザを自動操作できるようにプログラムを組みました。

なので、今回はブラウザを自動操作する方法について紹介していければなと思っております。

PHPでブラウザを自動操作する方法

使用するツール・ライブラリ等

今回使用するツールやライブラリは以下です。

  • PHP実行環境
  • Composer
  • php-webdriver
  • Google Chrome
  • Chrome Driver
  • Mac

ブラウザ操作自動化のライブラリとして「Selenium」が有名ですが、PHPでは、php-webdriverライブラリがあり、このライブラリを使って、PHPからWebブラウザを制御することができます。

ChromeDriverは、Google Chromeを操作するために必要なドライバです。

php-webdriverを追加する

まず、php-webdriverをcomposer経由で追加します。

$ composer require php-webdriver/webdriver

リポジトリ:php-webdriver/php-webdriver

ChromeDriverをダウンロードする

次に、ChromeDriverですが、現在使用しているChromeのバージョンと一致するものを下記よりダウンロードして、zipフォルダを開きます。

インストールページ:ChromeDriver – WebDriver for Chrome – Downloads

私は「ChromeDriver 100.0.4896.60」を選択し、「chromedriver_mac64.zip」をダウンロードしました!

実際にPHPを用いてブラウザを自動操作してみる

実際に、PHPを用いてブラウザを自動で操作していきます。今回は、以下のようなディレクトリ構成にしています。

automatic-browser-operation
├─ test.php
└─ chromedriver

automatic-browser-operationディレクトリ配下に、先ほどダウンロードしたchromedriverと、phpファイルを配置しています。

test.php

<?php

require_once '../../vendor/autoload.php';

use Facebook\WebDriver\Chrome\ChromeDriver;
use Facebook\WebDriver\WebDriverBy;

function test()
{
    // 環境変数にドライバパスを設定
    putenv('webdriver.chrome.driver=' .__DIR__. '/chromedriver');

    // ブラウザを起動
    $driver = ChromeDriver::start();

    // グーグルのページを開く
    $driver->get('http://www.google.com');

    // 検索ボックスに文字を入力して検索実行
    $driver->findElement(WebDriverBy::name('q'))->sendKeys('php-webdriver')->submit();

    sleep(5);
    
    // 全てのタブを閉じてブラウザを終了させる
    $driver->quit();
}

test();

簡単なプログラムですが、上記では

  • Chromeブラウザ起動 → グーグルページを開く → 検索ボックスに「php-webdriver」を入力してsubmit → 5秒待機 → 全てのタブを閉じてブラウザを終了させる

といった流れになっています。

php-webdriver APIの仕様については下記に詳しく書かれているので、他のメソッドも気になる方は、こちらを参考にしてみてください。

PHPでブラウザを自動操作する方法のまとめ

ここまで、PHPでブラウザを自動操作する方法について書いてきました

ブラウザを自動で操作することにより、日々の繰り返し作業やブラウザ上のテストなどを効率化できるので、まだ試していない方は一度試してみてください!

コメント

タイトルとURLをコピーしました