SlideShare a Scribd company logo
PHPerのための	
  
(不遇に負けない)
Selenium入門
2015年10月19日 戸田広
自己紹介
•  戸田 広(とだ ひろし)	
  @hiroshitoda	
  
•  1979年生まれ	
  36歳	
  
•  ここ2年くらいは	
  
JavaとJavaScriptばかりでしたが、	
  
最近またたまにPHPも書いてます。	
  
•  でも相変わらずPHPは5.2くらいで止まってます。	
  
Composerっておいしいの?	
  
俺とCodeIgniter
いろいろありました。
俺とFuelPHP
特にありません。
今日話すこと
※CodeIgniterの話はしません。	
  
	
  
1.  ブラウザ自動操作フレームワーク「Selenium」の紹介	
  
2.  Selenium	
  IDEと不遇のPHP	
  
3.  Selenium	
  WebDriverと不遇のPHP
ブラウザ自動操作フレームワーク	
  
「Selenium」の紹介
ブラウザ自動操作フレームワーク「Selenium」の紹介	
  
•  Seleniumとは	
  
•  Webブラウザーやスマートフォンアプリを	
  
リモート操作するライブラリー	
  
•  旧バージョンと新バージョンが	
  
それぞれに使われていますが、	
  
徐々に新バージョンに移行しています。	
  
•  Selenium	
  RC	
  
•  バージョン1	
  
•  GUIツール「Selenium	
  IDE」はこちらがベースです。
•  Selenium	
  WebDriver	
  
•  バージョン2	
  
•  W3Cで標準化されています。 http://www.w3.org/TR/webdriver/	
  
•  スマートフォン向けの拡張「Appium」があります。	
  
ブラウザ自動操作フレームワーク「Selenium」の紹介
•  プログラムの単体テストではなく、	
  
ユーザー操作テストの自動化をねらえるものです。	
  
•  様々な言語向けの実装が作られていますので、	
  
皆さんやりましょう!!!!
•  Java	
  
•  Ruby	
  
•  C#	
  
•  Python	
  
•  JavaScript	
  
•  PHP	
  
•  Perl	
  
•  Objective-­‐C	
  
•  しかしながら、言語によっては	
  
だいぶ不遇な感じなのです…	
  
Selenium	
  IDEと	
  
不遇のPHP
Selenium	
  IDEと不遇のPHP
•  デモやります!	
  
•  操作記録・再生	
  
•  アサーション	
  
•  Selenium	
  IDEは、Firefoxのプラグインです。	
  
•  コマンドは独自ですが、	
  
一般的なプログラミング言語のフォーマッターで	
  
エクスポートできます。
Selenium	
  IDEと不遇のPHP
•  _人人人人人人人人人人人人人人人人_

> 不遇とは           <

> 才能を持ちながらも      <

> めぐりあわせが悪くて     <

> 世間に認められないことである <

 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
Selenium	
  IDEと不遇のPHP
Selenium	
  IDEと不遇のPHP
•  PHPフォーマッターの公式対応は	
  
ずいぶん前に滅亡しました!!	
  
不遇!!!!	
  
•  Mozillaで配布されているプラグインは	
  
旧バージョンのSelenium	
  RC向けの	
  
エクスポートのみ対応です!!
•  https://addons.mozilla.org/ja/firefox/addon/selenium-­‐ide-­‐php-­‐formatters/	
  
•  今から使うものでは無いです。	
  
Selenium	
  IDEと不遇のPHP
•  Selenium	
  WebDriver向けの	
  
エクスポートプラグインを作っている方がいます。	
  
•  https://github.com/suzuki/PHP-­‐Formatter-­‐PHPUnit_Selenium2	
  
•  やさしい世界	
  
Selenium	
  WebDriverと	
  
不遇のPHP
Selenium	
  WebDriverと不遇のPHP
•  デモやります!	
  
•  まずJavaを入れます	
  
•  次にJarファイルを入れます	
  
•  これはPHPer向けの手順です	
  
•  Selenium	
  WebDriver	
  を使うために、
PHPUnit_Extensions_Selenium2TestCase	
  でコードを書いてみます。	
  
Selenium	
  WebDriverと不遇のPHP
•  _人人人人人人人人人人人人人人人人_

> 不遇とは           <

> 才能を持ちながらも      <

> めぐりあわせが悪くて     <

> 世間に認められないことである <

 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
Selenium	
  WebDriverと不遇のPHP
Selenium	
  WebDriverと不遇のPHP
•  「実装しているのはその一部だけです」	
  
•  (゚ε゚)キニシナイ!!	
  	
  
•  必要な部分はちゃんと実装されてるっぽいです。	
  
•  ちゃんとチェックしてませんが…	
  
•  他言語でも、必ずしもすべてのWebDriver	
  APIに	
  
対応しているわけではないです。	
  
•  ちゃんとチェックしてませんが…	
  
•  Selenium	
  WebDriver向けのAPIドキュメントが無い!!	
  
•  サンプルコードを見てね!の文化圏	
  
•  https://github.com/giorgiosironi/phpunit-­‐selenium/blob/master/Tests/Selenium2TestCaseTest.php	
  
•  がんばるしかないのか?	
  
Selenium	
  WebDriverと不遇のPHP
•  PHP向けの実装は他にもあります!	
  
•  Facebook謹製のphp-­‐webdriver	
  
•  https://github.com/facebook/php-­‐webdriver	
  
•  他言語の実装とコードの書き方が近いので、	
  
こちらの方がわかりやすいかも?	
  
•  ドキュメントが充実しています!	
  
Selenium	
  WebDriverと不遇のPHP
•  不遇をざっくり乗り越えるために、	
  
Seleniumのラッパーを活用するのも良いでしょう。	
  
•  CodeceptionのAcceptance	
  Testは、	
  
中身がSelenium	
  WebDriverです。	
  
•  http://codeception.com/	
  
•  なんだか良い感じのテストコードになります。	
  
ご静聴	
  
ありがとうございました。

More Related Content

What's hot (20)

Nespのコード生成
Nespのコード生成Nespのコード生成
Nespのコード生成
Kouji Matsui
 
〜laravel で学ぶ MVC
 〜laravel で学ぶ MVC 〜laravel で学ぶ MVC
〜laravel で学ぶ MVC
mikakane
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
 
メタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらばメタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらば
Kouji Matsui
 
PHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さPHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さ
Shinichi Takahashi
 
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
 
2011 PHPカンファレンス関西 懇親会LT
2011 PHPカンファレンス関西 懇親会LT2011 PHPカンファレンス関西 懇親会LT
2011 PHPカンファレンス関西 懇親会LT
Takako Miyagawa
 
勉強会用資料:Javaアプリ作成
勉強会用資料:Javaアプリ作成勉強会用資料:Javaアプリ作成
勉強会用資料:Javaアプリ作成
ssuser331f24
 
jQuery 対応ライブラリと TypeScript
jQuery 対応ライブラリと TypeScriptjQuery 対応ライブラリと TypeScript
jQuery 対応ライブラリと TypeScript
インフラジスティックス・ジャパン株式会社
 
Async deepdive before de:code
Async deepdive before de:codeAsync deepdive before de:code
Async deepdive before de:code
Kouji Matsui
 
3分で作る Kotlin Friendly な API
3分で作る Kotlin Friendly な API3分で作る Kotlin Friendly な API
3分で作る Kotlin Friendly な API
Hiroshi Kikuchi
 
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 20130から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
Tasuku Suenaga
 
Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF
Munenori Sugimura
 
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
Keisuke Utsumi
 
Codeigniter3フレームアップデート
Codeigniter3フレームアップデートCodeigniter3フレームアップデート
Codeigniter3フレームアップデート
tomohiro kitaura
 
C#でわかる こわくないMonad
C#でわかる こわくないMonadC#でわかる こわくないMonad
C#でわかる こわくないMonad
Kouji Matsui
 
H2O and php
H2O and phpH2O and php
H2O and php
Junichi Ishida
 
3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた
Yasushi Kato
 
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
Masahiro Wakame
 
TypeScript 入門してみる
TypeScript 入門してみるTypeScript 入門してみる
TypeScript 入門してみる
Ken Fukuyama
 
Nespのコード生成
Nespのコード生成Nespのコード生成
Nespのコード生成
Kouji Matsui
 
〜laravel で学ぶ MVC
 〜laravel で学ぶ MVC 〜laravel で学ぶ MVC
〜laravel で学ぶ MVC
mikakane
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
 
メタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらばメタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらば
Kouji Matsui
 
PHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さPHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さ
Shinichi Takahashi
 
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
 
2011 PHPカンファレンス関西 懇親会LT
2011 PHPカンファレンス関西 懇親会LT2011 PHPカンファレンス関西 懇親会LT
2011 PHPカンファレンス関西 懇親会LT
Takako Miyagawa
 
勉強会用資料:Javaアプリ作成
勉強会用資料:Javaアプリ作成勉強会用資料:Javaアプリ作成
勉強会用資料:Javaアプリ作成
ssuser331f24
 
Async deepdive before de:code
Async deepdive before de:codeAsync deepdive before de:code
Async deepdive before de:code
Kouji Matsui
 
3分で作る Kotlin Friendly な API
3分で作る Kotlin Friendly な API3分で作る Kotlin Friendly な API
3分で作る Kotlin Friendly な API
Hiroshi Kikuchi
 
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 20130から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
Tasuku Suenaga
 
Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF
Munenori Sugimura
 
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
Keisuke Utsumi
 
Codeigniter3フレームアップデート
Codeigniter3フレームアップデートCodeigniter3フレームアップデート
Codeigniter3フレームアップデート
tomohiro kitaura
 
C#でわかる こわくないMonad
C#でわかる こわくないMonadC#でわかる こわくないMonad
C#でわかる こわくないMonad
Kouji Matsui
 
3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた
Yasushi Kato
 
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
Masahiro Wakame
 
TypeScript 入門してみる
TypeScript 入門してみるTypeScript 入門してみる
TypeScript 入門してみる
Ken Fukuyama
 

Similar to PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9 (20)

初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~
初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~
初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~
ceres-inc
 
Selenium勉強会
Selenium勉強会Selenium勉強会
Selenium勉強会
Tatsunori Nishikori
 
Selenium入門
Selenium入門Selenium入門
Selenium入門
onozaty
 
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
Nozomi Ito
 
Selenium IDE for primer
Selenium IDE for primerSelenium IDE for primer
Selenium IDE for primer
yasukoS
 
Selenium入門(2023年版)
Selenium入門(2023年版)Selenium入門(2023年版)
Selenium入門(2023年版)
onozaty
 
PowerShellでWebブラウザ(Selenium Webdriver)を動かした話
PowerShellでWebブラウザ(Selenium Webdriver)を動かした話PowerShellでWebブラウザ(Selenium Webdriver)を動かした話
PowerShellでWebブラウザ(Selenium Webdriver)を動かした話
洋史 東平
 
WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介
Nobuhiko Futagami
 
WebDriverで遊ぼう
WebDriverで遊ぼうWebDriverで遊ぼう
WebDriverで遊ぼう
洋史 東平
 
Selenium 触ってみよう
Selenium 触ってみようSelenium 触ってみよう
Selenium 触ってみよう
Oda Shinsuke
 
SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!
SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!
SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!
Masato Noguchi
 
201605 FA勉強会 seleniumスライド
201605 FA勉強会 seleniumスライド201605 FA勉強会 seleniumスライド
201605 FA勉強会 seleniumスライド
秀平 高橋
 
Selenium2(web driver) ide編
Selenium2(web driver) ide編Selenium2(web driver) ide編
Selenium2(web driver) ide編
Tetsuya Hasegawa
 
201605 fa勉強会スライド
201605 fa勉強会スライド201605 fa勉強会スライド
201605 fa勉強会スライド
秀平 高橋
 
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話
洋史 東平
 
サルから進化(?) Selenium WebDriverの 自動実行プログラム
サルから進化(?)Selenium WebDriverの自動実行プログラムサルから進化(?)Selenium WebDriverの自動実行プログラム
サルから進化(?) Selenium WebDriverの 自動実行プログラム
洋史 東平
 
PHPとTravis CIでブラウザテスト
PHPとTravis CIでブラウザテストPHPとTravis CIでブラウザテスト
PHPとTravis CIでブラウザテスト
Yusuke Ando
 
Microsoft Excelでgoogle chromeを動かした話
Microsoft Excelでgoogle chromeを動かした話Microsoft Excelでgoogle chromeを動かした話
Microsoft Excelでgoogle chromeを動かした話
洋史 東平
 
Selenium2でつくるテストケースの構成について
Selenium2でつくるテストケースの構成についてSelenium2でつくるテストケースの構成について
Selenium2でつくるテストケースの構成について
yufu yufu
 
テストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったことテストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったこと
Yuta Ohashi
 
初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~
初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~
初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~
ceres-inc
 
Selenium入門
Selenium入門Selenium入門
Selenium入門
onozaty
 
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
Nozomi Ito
 
Selenium IDE for primer
Selenium IDE for primerSelenium IDE for primer
Selenium IDE for primer
yasukoS
 
Selenium入門(2023年版)
Selenium入門(2023年版)Selenium入門(2023年版)
Selenium入門(2023年版)
onozaty
 
PowerShellでWebブラウザ(Selenium Webdriver)を動かした話
PowerShellでWebブラウザ(Selenium Webdriver)を動かした話PowerShellでWebブラウザ(Selenium Webdriver)を動かした話
PowerShellでWebブラウザ(Selenium Webdriver)を動かした話
洋史 東平
 
WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介
Nobuhiko Futagami
 
WebDriverで遊ぼう
WebDriverで遊ぼうWebDriverで遊ぼう
WebDriverで遊ぼう
洋史 東平
 
Selenium 触ってみよう
Selenium 触ってみようSelenium 触ってみよう
Selenium 触ってみよう
Oda Shinsuke
 
SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!
SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!
SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!
Masato Noguchi
 
201605 FA勉強会 seleniumスライド
201605 FA勉強会 seleniumスライド201605 FA勉強会 seleniumスライド
201605 FA勉強会 seleniumスライド
秀平 高橋
 
Selenium2(web driver) ide編
Selenium2(web driver) ide編Selenium2(web driver) ide編
Selenium2(web driver) ide編
Tetsuya Hasegawa
 
201605 fa勉強会スライド
201605 fa勉強会スライド201605 fa勉強会スライド
201605 fa勉強会スライド
秀平 高橋
 
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話
Microsoft ExcelでWebブラウザ(Selenium WebDriver)を動かした話
洋史 東平
 
サルから進化(?) Selenium WebDriverの 自動実行プログラム
サルから進化(?)Selenium WebDriverの自動実行プログラムサルから進化(?)Selenium WebDriverの自動実行プログラム
サルから進化(?) Selenium WebDriverの 自動実行プログラム
洋史 東平
 
PHPとTravis CIでブラウザテスト
PHPとTravis CIでブラウザテストPHPとTravis CIでブラウザテスト
PHPとTravis CIでブラウザテスト
Yusuke Ando
 
Microsoft Excelでgoogle chromeを動かした話
Microsoft Excelでgoogle chromeを動かした話Microsoft Excelでgoogle chromeを動かした話
Microsoft Excelでgoogle chromeを動かした話
洋史 東平
 
Selenium2でつくるテストケースの構成について
Selenium2でつくるテストケースの構成についてSelenium2でつくるテストケースの構成について
Selenium2でつくるテストケースの構成について
yufu yufu
 
テストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったことテストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったこと
Yuta Ohashi
 
Ad

PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9