PHPプログラムに関する各種メモ書き:タグ「Selenium」での検索

PHPでSelenium WebDriverを使ってWEBブラウザを自動運転する

PHPでWEBブラウザを自動運転するには FaceBookが作った php-webdriver を使用します。
これはPHPから Selenium WebDriver を扱うパッケージで、動かしたいブラウザを指定してブラウザに操作を与えることが出来ます。
なかなか良くできたパッケージで(環境にもよりますが)RubyでSeleniumを動かすより早く動作する場合があります。

動作イメージ

php → php-webdriver → (chrome , firefox, safari, などを選択 ) →  (指定したブラウザが動く ! )

● facebook/php-webdriver のインストール

composer require facebook/webdriver

● chromeドライバ , firefoxドライバ を用意する

こちらからダウンロードしてカレントディレクトリに置いておきます。

・ Seleniumドライバ(firefox)

https://github.com/mozilla/geckodriver/releases
からインストール

・ Seleniumドライバ(chrome)

Macの場合以下のコマンドでインストールする

brew install chromedriver

またはこちらからダウンロードします
https://sites.google.com/a/chromium.org/chromedriver/downloads

● php-webdriver のサンプル

・Githubのホームページへいって h1 要素を取得して表示します。

<?php
require_once __DIR__ . '/vendor/autoload.php';

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

function do_access() {

    putenv('webdriver.chrome.driver=' . __DIR__ . '/chromedriver');
    $options = new ChromeOptions();
    $options->addArguments(array(
      '--window-size=500,300',                          // 画面サイズを 500 x 300  にする
      '--user-data-dir='.__DIR__.'/chrome_profile2' ,   // プロファイル(ユーザーディレクトリ)を指定
    ));
    $caps = DesiredCapabilities::chrome();
    $caps->setCapability(ChromeOptions::CAPABILITY, $options);
    $driver = ChromeDriver::start( $caps );

    $driver->get('https://github.com/');
    // h1 タグを探す
    $element = $driver->findElement(WebDriverBy::tagName('h1'));
    echo "Value is : " . $element->getText() . "\n\n";

    $driver->close();
}

do_access();

● マニュアル

https://facebook.github.io/php-webdriver/1.3.0/Facebook/WebDriver.html

● よくやる使い方

https://gist.github.com/aczietlow/7c4834f79a7afd920d8f

● Chrome で 画像を取得せずにブラウズする

下記のオプションを指定して起動します

$options->addArguments(array(
	'--blink-settings=imagesEnabled=false' ,				// 画像を表示しない
));
No.1173
11/15 11:38

edit

Selenium