「ユーザーがWEB上で特定の動作をしたら、特定のページのスクリーンショットを撮る」ということを実現したいと思っています。
http://www.ajisaba.net/develop/selenium/client_php_webdriver_chrome.html#PREPARY
の記事を参考にしてみたのですが、
記事中の下記の部分を見て、頭がショートしてしまいました。
========================
・Chromeをリモート操作するため、ChromeDriverをダウンロードします。
ここではCentOSを使用するので、最新バージョンのLinux用 chromedriver_linux64.zip をダウンロードして解凍します。
→意味がわかりませんでした。本当に恥ずかしい。。
・Chromeがインストールされていない場合、以下のページを参考にインストールします。
→意味がわかりませんでした。ローカル環境で実行する前提だからなのかなあと予想。レンタルサーバー上で実行する場合も必要なのかなあ、と悩んでいる知識レベル。
・facebook/php-webdriverがインストールされていない場合、インストールします。
→※最近composerの使い方を学び、ここの部分だけはできています。
========================
私はレンタルサーバーのxserverを使用しているのですが、以下のコードを動かすために、
上記で出てくる「ChromeDriver」および「Chrome」を、サーバー上にインストールしなければならないのでしょうか?
もし、お分かりなる方がいらっしゃいましたら、道しるべを頂けましたら幸いに存じます。
<?php require_once(__DIR__ . '/../vendor/autoload.php'); use Facebook\WebDriver; use Facebook\WebDriver\WebDriverExpectedCondition; use Facebook\WebDriver\WebDriverBy; use Facebook\WebDriver\Chrome\ChromeOptions; use Facebook\WebDriver\Chrome\ChromeDriver; use Facebook\WebDriver\Remote\DesiredCapabilities; class Test { public function run() { $screenPath = '/vagrant/screenshot.png'; // ダウンロードしたchromedriverのパスを指定 $driverPath = realpath(__DIR__ . "/chromedriver"); putenv("webdriver.chrome.driver=" . $driverPath); // Chromeを起動するときのオプション指定用 $options = new ChromeOptions(); // ヘッドレスで起動するように指定 $options->addArguments(['--headless']); $caps = DesiredCapabilities::chrome(); $caps->setCapability(ChromeOptions::CAPABILITY, $options); $driver = ChromeDriver::start($caps); $driver->get('http://www.yahoo.co.jp/'); // スクリーンショットを保存 $driver->takeScreenshot($screenPath); // ブラウザを閉じる $driver->close(); } } $t = new Test(); $t->run();
ps
勉強すればするほど知らない知識が出てきて、涙が出そうです、、
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/10 08:41