php-webdriverで現在開いているページのURLを取得する必要が出てきた。
SOY CMSの管理画面では、
記事やラベルの詳細ページを開くとURLの末尾に各々のIDが付与されているため、
URLから指定の記事、もしくはラベルのIDを取得するためにはURLを取得しなければならない。
SOY CMSで標準ページでも任意のブログページのb_blockを使用できるようにした
というわけで、php-webdriverの公式Wikiを調べてみたところ、
WebDriverクラスのメソッドでgetCurrentURLというものがあった。
https://github.com/facebook/php-webdriver
使い方は、
$driver = RemoteWebDriver::create($host, DesiredCapabilities::chrome()); $url = $driver->getCurrentURL();
※RemoteWebDriverクラス等や$hostの定義は事前に行っているものとします。
php-webdriverで指定のフォームに値を入力してみる
このコードで現在開いているページのURLを取得できた。
せっかくなので、URLの末尾からIDを取得するコードも書いておくと
$url = $driver->getCurrentURL(); $id = (int)trim(substr($url, strrpos($url, "/") + 1), "/");
正規表現を使って取得は、メモリを多く使うので、
文字数をカウントして取得する。
getCurrentURLの返り値の詳細を見ていないのでなんともいえないけれども、
?のGETパラメータや#を含むURLの場合は先にこれらの値を除いておく必要がありそうだ。