近々500ページ位あるサイトのデザイン変更する案件をやることになるらしく、目視で500ページを確認してたのでは死んでしまうということで、SeleniumでSS撮りまくってビューアで確認するというとりあえず楽できそうなソリューションを試してどうなるかを試していきたいと思います。
今回はWindows7にSelenium入れてNodeでSS撮るScript作って動かすというところまでをやってみます。
ちなみに先にCentOS6.5上で同様のことをやろうとしたんだけども、firefoxの最新のドライバがおかしいのかSeleniumは動くがfirefoxがまったく動かないという現象に見まわれ丸一日無駄にしたけどWindowsに入れたらものの十分程度で動いたという話です。
JRE入れる
JREが入ってないとどうしようもないので、30億のデバイスで走るJavaを入れます。
今回はWin7 64bitなのでWindows オフライン (64ビット)を入れましょう。
Selenium Standalone Server入れる
現時点での最新版2.48.2を適当なフォルダにダウンロードします。
http://www.seleniumhq.org/download/
ついでにchromeのドライバ(chromeが嫌ならなんか好きなドライバ)もダウンロードして、パスが通ったフォルダにぶち込みます。
Selenium Standalone Serverを動かす
先ほどダウンロードしたフォルダに入るかパス通すかなんかして起動します。
java -jar selenium-server-standalone-2.48.2.jar
なんかだらーっとメッセージが出てきて
RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
みたいなのが表示されるので http://127.0.0.1:4444/wd/hub にアクセスします。
アクセスすると Create Session ってボタンがあるので押すとダイアログが出るので chrome を選ぶともう一枚ブラウザが立ち上がるので、とりあえずそれが立ち上がればOKです。
WebdriverIO入れる
Nodeは入ってるとして、NodeでSeleniumを使うものとして今回はWebdriverIOを使います。
npmでぶっこんでサンプルにあるコードを実行してうまく動くなら成功です。
var webdriverio = require('webdriverio'); var options = { desiredCapabilities: { browserName: 'chrome' } }; var client = webdriverio.remote(options); client .init() .url('https://duckduckgo.com/') .setValue('#search_form_input_homepage', 'WebdriverIO') .click('#search_button_homepage') .getTitle().then(function(title) { console.log('Title is: ' + title); // outputs: "Title is: WebdriverIO (Software) at DuckDuckGo" }) .end();
PhantomJSを入れる
saveScreenshotすると気づくのが、viewport分しか撮れてないことで、これをすべて撮るためにPhantomJSを入れます。
これも同様にパスが通ったフォルダにぶち込みます。
サンプルのbrowserNameに'phamtomjs'と入れて動くようなら成功です。
結論
こちらからは以上です。
- 作者: Satya Avasarala,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/09/18
- メディア: 大型本
- この商品を含むブログ (4件) を見る
- 作者: Dima Kovalenko,玉川紘子,太田健一郎,笹井崇司
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/09/18
- メディア: 大型本
- この商品を含むブログ (3件) を見る
システムテスト自動化 標準ガイド CodeZine BOOKS
- 作者: Mark Fewster,Dorothy Graham
- 出版社/メーカー: 翔泳社
- 発売日: 2014/12/17
- メディア: Kindle版
- この商品を含むブログ (3件) を見る