php-webdriver」タグアーカイブ

php-webdriverを簡単に試せるライブラリ書いた

投稿日:

自由研究が終わっていない!やばい!となって週末全力で息子の宿題をお手伝いしました。
このへんは血が争えないというか、やはりこうなってしまうんだなぁと歴史というか、得体の知れない何かを実感しました。

というわけで、先日までちょくちょくとphp-webdriverを触っていたのですが自分の中である程度まとまったのでライブラリ化しました。
名前はpmdです(php-webdriver → pwd → ひっくり返して → pmd)。

2017/09/02 追記


名前、最初気にしてなかったけどやっぱり気になったので変えました。

screru(スクレル) です。
(スクリーンショットが撮れる → screenshot ga toreru → screru)

2017/09/02 追記ここまで

といっても大層なものでもなく、自分自身が欲しいなぁという機能をラップして組み込んだものになります。

入れた機能としては以下の通りです。

  • PHPUnit用に組み込める関数群をTraitとして用意
  • 画面のフルスクリーンキャプチャ
    • 後述しますが、テスト(assertion)失敗時にキャプチャを撮る仕組みもあります
  • 指定要素のキャプチャ

対応ブラウザは、

  • Firefox
  • Chrome
  • Internet Explorer (windows)

のみとなっています(いまのところ)。

使い方

seleniumや各ドライバーのインストールなどは、

README.mdを参考にしてもらうとして簡単な使い方を書きます。
続きを読んでみようかな…

php-webdriverを使って指定した要素のキャプチャを撮る

投稿日:

朝は人間にとってゴールデンタイムと呼ばれているようにセミにとってもそれはゴールデンタイムのようです。

前回、php-webdriverを使ってフルスクリーンのキャプチャを撮る ことに成功したのですが、そこに至るまでにちょっと試してみたことがあって、それも無事解決したのでは?というお話を書きます。
※後述の課題点にあるようにすべて解決というわけではないです

要素のキャプチャ

それは何かというと、要素を指定した場合その部分だけのキャプチャを撮るというものです。
※この記事のサムネイル画像は、google検索結果画面の#nav > tbody部分のキャプチャです

そもそも、php-webdriverのwikiにはこんなサンプルが載っていて
Taking Full Screenshot and of an Element · facebook/php-webdriver Wiki
どうやら要素を指定すると、その要素のみキャプチャが撮れますよというサンプルのようなのですが、それを試しても前回書いたようにスクリーンキャプチャはブラウザによって撮る範囲が決まっていて、

  • 現在見えている範囲の要素は上手くキャプチャが撮れる
  • 見えていない範囲の要素のキャプチャは撮れない

という問題を抱えていたのです。
※ 今のところ全画面を撮るIEでは上手く撮れますが、、

実際に試してみたソースがこちらで、
続きを読んでみようかな…

php-webdriverを使ってフルスクリーンのキャプチャを撮る

投稿日:

ここ最近ちょくちょくphp-webdriverを試していて、takeScreenshot();で画面キャプチャを撮った時に全画面のキャプチャが撮れないぃ!ムキーッ!!となっていたのですが、色々調べた結果何とかなったので書きます。

まず先にパク参考とさせて頂いた記事を紹介します。

記事を読んでみると、Seleniumを使ったスクリーンショットで撮れる範囲がブラウザによってバラバラであるということが分かります。※1
(以前書いた php-webdriverをWindowsのローカルで試す | Shimabox Blog の通りIEはページ全体を撮ってくれます)
 
そして対応策として、どれも一貫して

画面をスクロールさせつつキャプチャを撮ってその画像を繋ぎ合わせる

ということをやっていることが分かります。

PHPで同じことをやっているものはないかなぁと少し探したのですが、自分では見つからなかったのでChromeでフルサイズのスクリーンショットを撮るためのパッチ – Qiitaの実装内容を参考に(ほぼ完コピ)してPHPで書いてみました。
続きを読んでみようかな…

php-webdriverをWindowsのローカルで試す

投稿日:

小学校とか幼稚園とかの行事に参加する度に日焼けに悩まされています。
この時期は外でも地味に調子こけるからそれが辛い。

さて、前回( php-webdriverをmacのローカルで試す )はローカルのMacでphp-webdriverを使ってseleniumを動かしてみましたが、今回はみんな大好きWindowsを使ってみたいと思います。
※ WindowsなのでもちろんIEも動かせます

といっても、Macで試したときとそんなに違いはありません。

環境

環境ですが、

  • Windows 7 Professional
  • php
    • PHP 5.6.23 (cli) (built: Jun 22 2016 12:15:20)
    • xampp を使いました
    • php-webdriver は PHPのバージョンが5.5 以上であれば大丈夫です
  • java jdk
    • 1.8.0_77
    • javaは 1.8 以上であれば大丈夫です

自分はこんな感じです。
とりあえず、PHP(>=5.5) と Java(>=1.8) が入っていればよいと思います。

利用するブラウザ

利用するブラウザのバージョンは以下の通りです。

  • Chrome
    • 59.0.3071.86 (Official Build) (64 ビット)
    • ヘッドレスじゃないよ!
  • Firefox
    • 53.0.3 (64 ビット)
    • ※ 32 ビット版でも大丈夫だと思います
  • IE
    • 11.0.9600.18537

続きを読んでみようかな…

CentOS 6.8 でphp-webdriverを試す (Firefox編)

投稿日:

前回 はローカルのmacでphp-webdriverを試したので、今回は CentOS 6.8 上での実行を目標に作業を行っていきます。
先に断っておきますと、とりあえず利用するブラウザはFirefoxのみです。

環境

  • CentOS 6.8
$ cat /etc/redhat-release
CentOS release 6.8 (Final)

Java (jdk) のインストール

$ sudo yum -y install java
  • 確認
$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

1.8が入らなかった場合とかソースから直接インストールしたい場合

$ wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm
$ sudo rpm -ivh jdk-8u131-linux-x64.rpm

Firefoxのインストール

$ sudo yum -y install firefox
  • 確認
$ firefox -v
Mozilla Firefox 52.1.0

続きを読んでみようかな…

php-webdriverをmacのローカルで試す

投稿日:

ちょっと前になりますが、画面にあるリンクのURL(aタグのhrefの値)を全部なめて、期待するURLになっているかどうかをテストしなくてはならないお仕事がありまして、これは人間のやる仕事ではない!これは機械にやらせる仕事だ!とついカッとなってSelenium関連を調べていたら以下の素晴らしいOSSに巡り逢いました。
※ え、いまさら?とか言わないで

facebook/php-webdriver: A php client for webdriver.

これは

  • Facebook様が作っておられる
  • Selenium WebDriverをPHPでラップしているのでPHPからWebブラウザを制御できる

と、PHPerには嬉しいものとなっております。
私はこれで気の狂いそうなテストを機械に行なってもらうことに成功しました。
※ テストを書くのはもちろん大変なんだけど

案件において、上記のテストは仮想環境のCentOS上で行ったのですが、家のMacでもphp-webdriverを軽く動かしてみたので今回はその備忘録になります。

環境

環境ですが、

  • macOS Sierra 10.12.4
  • php
    • 5.6.30 (cli) (built: Feb 7 2017 16:06:52)
    • php-webdriver は PHPのバージョンが5.5 以上であれば大丈夫です
  • java jdk
    • 1.8.0_77
    • javaは 1.8 以上であれば大丈夫です

自分はこんな感じです。
とりあえず、PHP(>=5.5) と Java(>=1.8) が入っていればよいと思います。

利用するブラウザ

利用するブラウザのバージョンは以下の通りです。

  • Chrome
    • 58.0.3029.81 (64-bit)
  • Firefox
    • 53.0 (64 ビット)

続きを読んでみようかな…