SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
初心者による初心者のための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

Más contenido relacionado

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

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 Engineers
Takeshi Arabiki
 
CakePHP PHP Framework
CakePHP PHP FrameworkCakePHP PHP Framework
CakePHP PHP Framework
ryota ichie
 

Similar a 初心者による初心者のための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
 

Más de ceres-inc

Más de 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クエリチューニング
 

Último

Último (11)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

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