13
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PHP seleniumを使ってみよう

Last updated at Posted at 2021-09-10

はじめに

  • PHPで、seleniumを使用したい人
  • 自動化処理に興味がある方

seleniumとは

Selenium は、 Webアプリケーションをテストするためのポータブルフレームワークである。 Selenium は、テストスクリプト言語(Selenium IDE)を学ぶ必要なしに、機能テストを作成するための再生ツールを提供する。

ChromeDriverをインストール

ChromeDriverは、Chromeを動かすために必要なドライバーになります。

こちらからダウンロード
macの場合はHomeBrewでインストール可能
コマンド: brew install chromedriver

selenium-server-standaloneをインストール

Windowsはこちらからダウンロード
macの場合はHomeBrewでインストール可能
コマンド: brew install selenium-server-standalone

Composerのインストール

Composerは、PHPのライブラリ管理ツールです。
※今回は、php-webdriverを使用し管理するために使用します。

こちらからダウンロード
macの場合はHomeBrewでインストール可能
コマンド: brew install composer

php-webdriverのインストール

PHPで、seleniumを扱うには、php-webdriverといったライブリをインストールする必要があります。以下のコマンドを実行してください。

curl -sS https://getcomposer.org/installer | php
php composer.phar require facebook/webdriver

※または、以下の仕様でも可能です。

  1. composer.jsonを作成
  2. composer.jsonにライブラリ情報を記述
  3. composer install コマンドの実行
composer.jsonの作成
touch composer.json
composer.jsonにライブリ情報を記述
{
    "require":{
        "php-webdriver/webdriver":" 1.8.0"
    }
}
ライブリのインストール
composer install

全体像

sample.php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Facebook\WebDriver\Chrome\ChromeOptions;
use Facebook\WebDriver\Chrome\ChromeDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\WebDriverExpectedCondition;
use Facebook\WebDriver\WebDriverBy;

$driverPath = realpath('/usr/local/bin/chromedriver');
putenv('webdriver.chrome.driver=' . $driverPath);

$driver = ChromeDriver::start();

// Googleへ遷移
$driver->get('https://www.google.co.jp/');

// 5秒待機
$driver->wait(5);

// スクリーンショット
$file = './sample.png';
$driver->takeScreenshot($file);

// ブラウザを閉じる
$driver->quit();

ChromeDriverのパス設定

$driverPath = realpath('ChromeDriverのパス');
putenv('webdriver.chrome.driver=' . $driverPath);

※パスを/usr/local/bin/chromedriveとする場合は、権限付与が必要です。

権限を付与するコマンド(/usr/local/bin/chromedrive)
mv ~/Downloads/chromedriver /usr/local/bin/ chmod +x /usr/local/bin/chromedriver

ChromeDriverの起動

sample.php
$driver = ChromeDriver::start(オプション);

ページ遷移

sample.php
$driver->get('URL');

待機

sample.php
$driver->wait(秒数)->until(
    // 待機条件
);

スクリーンショット

sample.php
$driver->takeScreenshot('保存先のパス');

ブラウザを閉じる

samaple.php
$driver->quit();

まとめ

PHPでseleniumを使用する場合は、以下の手順で進めてください。
1. ChromeDriverをインストール
2. Composerのインストール
3. php-webdriverのインストール

13
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?