SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
初心者による初心者のためのRPA入門
~Seleniumを使用したWebブラウザ操作の自動化~
株式会社セレス
河野 康裕 (Yasuhiro Kawano)
1
Twitter アカウント
ハッシュタグ
#ceres_tech
#勉強会
#初心者
2
せれすたん
▼フォローしてね▼
自己紹介
- Web エンジニア
- モッピー https://pc.moppy.jp/ 担当してます
- PHP 歴長め, Gentoo Linux 好き
- 趣味多め
3
アウトライン
1. Selenium とは?
2. ハンズオン
3. PHP で Selenium を動かすためには?
4. まとめ
5. アンケート
4
Selenium とは?
GUI テストの自動化を実現するツール
Web ブラウザ(chrome,firefox,Safari,etc)の操作を自動化できる
5
Selenium
Server
Selenium
WebDriver
Web
Browser
etc
Selenium とは?
例えば: 宿泊予約の操作を自動化
- とある宿泊予約の流れ
1. 予約情報入力
a. 各種フォームに予約情報を入力する
b. 次へをクリックする
2. 予約内容確認
a. 確定ボタンをクリックする
3. 予約完了
a. 予約を完了しました。が表示される
6
日本 Selenium ユーザコミュニティによるテスト用サイト
http://www.selenium.jp/test-site
ハンズオン!
宿泊予約の操作を自動化してみよう!
7
ハンズオン!
1. VNC サーバに接続しましょう
2. サンプルコードをダウンロードしましょう
3. 宿泊予約しよう
a. 宿泊予約その1
b. 宿泊予約その2 (その1のリニューアル版)
8
ハンズオン!
1. VNC サーバに接続しましょう
- VNC サーバに接続する
- macOS: Finder → 移動 → サーバへ接続
- Windows: RealVNC Windows
- https://www.realvnc.com/en/connect/download/viewer/windows/
- 接続先
- お渡しする「接続情報」の VNC Server を参照ください
9
Selenium
Server
Web
Browser
etc
Server
VNC
Server
VNC
Clien
t
Selenium
WebDriver
ハンズオン!
2. サンプルコードをダウンロードしましょう
$ git clone https://github.com/y-kawano-ceres/study-selenium-php.git
10
ハンズオン!
3. 実行してみよう: 宿泊予約その1
$ cd study-selenium-php
$ php src/lesson_1.php
- お渡しした「接続情報」の Selenium Server を参照し, $port = null; を書き換えてください
11
ハンズオン!
3. 実行してみよう: 宿泊予約その2
12
$ cd study-selenium-php
$ php src/lesson_2.php
- お渡しした「接続情報」の Selenium Server を参照し, $port = null; を書き換えてください
ハンズオン!
実装の流れ
1. 操作したい HTML 要素について調査する
a. 宿泊日を操作したい
b. 宿泊日フォームを特定する値はなに?
c. Web ブラウザの開発者ツールを利用して調査し特定する
2. 実装
3. テスト
13
PHP で Selenium を動かすためには?
1. Selenium Server
2. php-webdriver
14
PHP で Selenium を動かすためには?
1. Selenium Server
- docker をインストール
- macOS: https://docs.docker.com/docker-for-mac/install/
- Windows: https://docs.docker.com/docker-for-windows/install/
15
- docker-selenium コンテナを起動する
$ docker run --rm -d -p 4444:4444 -p 5900:5900 selenium/standalone-chrome-debug
※ https://github.com/SeleniumHQ/docker-selenium
16
PHP で Selenium を動かすためには?
1. Selenium Server
- php-webdriver をインストールする
$ cd <project>
$ composer require facebook/webdriver
※ https://github.com/facebook/php-webdriver
※ https://getcomposer.org
17
PHP で Selenium を動かすためには?
2. php-webdriver
<?php
require_once 'vendor/autoload.php';
use Facebook¥WebDriver¥Remote¥DesiredCapabilities;
use Facebook¥WebDriver¥Remote¥RemoteWebDriver;
$host = 'http://localhost:4444/wd/hub';
$driver = RemoteWebDriver::create($host, DesiredCapabilities::chrome());
...
18
PHP で Selenium を動かすためには?
2. php-webdriver
まとめ
1. Selenium とは?
2. ハンズオン
3. PHP で Selenium を動かすためには?
19

Weitere ähnliche Inhalte

Ähnlich wie 初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~

20170809 start python_selenium
20170809 start python_selenium20170809 start python_selenium
20170809 start python_seleniumHiroko Tamagawa
 
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9Hiroshi Toda
 
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由Kenichi Mukai
 
Phalcon PHPフレームワーク Sense of Use PHPカンファレンス 2015(大阪、福岡)
Phalcon PHPフレームワーク Sense of Use PHPカンファレンス 2015(大阪、福岡)Phalcon PHPフレームワーク Sense of Use PHPカンファレンス 2015(大阪、福岡)
Phalcon PHPフレームワーク Sense of Use PHPカンファレンス 2015(大阪、福岡)和宏 近藤
 
PHP-MLを使用して気軽に機械学習にトライしてみる
PHP-MLを使用して気軽に機械学習にトライしてみるPHP-MLを使用して気軽に機械学習にトライしてみる
PHP-MLを使用して気軽に機械学習にトライしてみるRyo Shibayama
 
Roundsmanの紹介 @ Chef Casual Talks Vol.1 #eytokyo
Roundsmanの紹介 @ Chef Casual Talks Vol.1 #eytokyo Roundsmanの紹介 @ Chef Casual Talks Vol.1 #eytokyo
Roundsmanの紹介 @ Chef Casual Talks Vol.1 #eytokyo Takeshi Komiya
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersTakeshi Arabiki
 
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
 
簡単便利!Laravel Homestead
簡単便利!Laravel Homestead簡単便利!Laravel Homestead
簡単便利!Laravel HomesteadShota Inoue
 
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるPHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるTakuya Sato
 
Arduino を PHP で制御する
Arduino を PHP で制御するArduino を PHP で制御する
Arduino を PHP で制御するKenichi Ahagon
 
CakePHP PHP Framework
CakePHP PHP FrameworkCakePHP PHP Framework
CakePHP PHP Frameworkryota ichie
 
Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf Toshiki Iga
 
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudyライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudyKenichi Mukai
 
新人エンジニアがフレームワークについて調べたこと
新人エンジニアがフレームワークについて調べたこと新人エンジニアがフレームワークについて調べたこと
新人エンジニアがフレームワークについて調べたことYosuke Kasagawa
 
Symfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source CodeSymfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source CodeHidenori Goto
 
WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介Nobuhiko Futagami
 
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxPHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxHideo Kashioka
 

Ähnlich wie 初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~ (20)

20170809 start python_selenium
20170809 start python_selenium20170809 start python_selenium
20170809 start python_selenium
 
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
 
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
 
Phalcon PHPフレームワーク Sense of Use PHPカンファレンス 2015(大阪、福岡)
Phalcon PHPフレームワーク Sense of Use PHPカンファレンス 2015(大阪、福岡)Phalcon PHPフレームワーク Sense of Use PHPカンファレンス 2015(大阪、福岡)
Phalcon PHPフレームワーク Sense of Use PHPカンファレンス 2015(大阪、福岡)
 
PHP-MLを使用して気軽に機械学習にトライしてみる
PHP-MLを使用して気軽に機械学習にトライしてみるPHP-MLを使用して気軽に機械学習にトライしてみる
PHP-MLを使用して気軽に機械学習にトライしてみる
 
Roundsmanの紹介 @ Chef Casual Talks Vol.1 #eytokyo
Roundsmanの紹介 @ Chef Casual Talks Vol.1 #eytokyo Roundsmanの紹介 @ Chef Casual Talks Vol.1 #eytokyo
Roundsmanの紹介 @ Chef Casual Talks Vol.1 #eytokyo
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
 
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事情
 
簡単便利!Laravel Homestead
簡単便利!Laravel Homestead簡単便利!Laravel Homestead
簡単便利!Laravel Homestead
 
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるPHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
 
Arduino を PHP で制御する
Arduino を PHP で制御するArduino を PHP で制御する
Arduino を PHP で制御する
 
CakePHP PHP Framework
CakePHP PHP FrameworkCakePHP PHP Framework
CakePHP PHP Framework
 
Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf
 
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudyライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
 
新人エンジニアがフレームワークについて調べたこと
新人エンジニアがフレームワークについて調べたこと新人エンジニアがフレームワークについて調べたこと
新人エンジニアがフレームワークについて調べたこと
 
20090801phpstudy Sanemat
20090801phpstudy Sanemat20090801phpstudy Sanemat
20090801phpstudy Sanemat
 
Guiなテスト環境
Guiなテスト環境Guiなテスト環境
Guiなテスト環境
 
Symfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source CodeSymfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source Code
 
WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介
 
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxPHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
 

Mehr von ceres-inc

RustでWebAssembly
RustでWebAssemblyRustでWebAssembly
RustでWebAssemblyceres-inc
 
エンジニア力底辺のデザイナーが Vue.jsチャレンジ 
エンジニア力底辺のデザイナーが Vue.jsチャレンジ エンジニア力底辺のデザイナーが Vue.jsチャレンジ 
エンジニア力底辺のデザイナーが Vue.jsチャレンジ ceres-inc
 
Selenideを使って上司のよくある勘違いを回避するお話
Selenideを使って上司のよくある勘違いを回避するお話Selenideを使って上司のよくある勘違いを回避するお話
Selenideを使って上司のよくある勘違いを回避するお話ceres-inc
 
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~ceres-inc
 
初心者による初心者のための システム作りの流れ
初心者による初心者のための システム作りの流れ初心者による初心者のための システム作りの流れ
初心者による初心者のための システム作りの流れceres-inc
 
初心者による初心者のためのMySQLクエリチューニング
初心者による初心者のためのMySQLクエリチューニング初心者による初心者のためのMySQLクエリチューニング
初心者による初心者のためのMySQLクエリチューニングceres-inc
 

Mehr von ceres-inc (6)

RustでWebAssembly
RustでWebAssemblyRustでWebAssembly
RustでWebAssembly
 
エンジニア力底辺のデザイナーが Vue.jsチャレンジ 
エンジニア力底辺のデザイナーが Vue.jsチャレンジ エンジニア力底辺のデザイナーが Vue.jsチャレンジ 
エンジニア力底辺のデザイナーが Vue.jsチャレンジ 
 
Selenideを使って上司のよくある勘違いを回避するお話
Selenideを使って上司のよくある勘違いを回避するお話Selenideを使って上司のよくある勘違いを回避するお話
Selenideを使って上司のよくある勘違いを回避するお話
 
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
 
初心者による初心者のための システム作りの流れ
初心者による初心者のための システム作りの流れ初心者による初心者のための システム作りの流れ
初心者による初心者のための システム作りの流れ
 
初心者による初心者のためのMySQLクエリチューニング
初心者による初心者のためのMySQLクエリチューニング初心者による初心者のためのMySQLクエリチューニング
初心者による初心者のためのMySQLクエリチューニング
 

初心者による初心者のためのRPA入門 ~Seleniumを使用したWebブラウザ操作の自動化~