SlideShare a Scribd company logo
1 of 19
Download to read offline
画面自動操作 Selenium編
∼テスト自動化以外での活用方法∼
自己紹介
• 高橋秀平
• 2014/4にEVERRISE入社(現在3年目)
• 広告代理店での便利ツール開発(主にVBA、Ruby)
• 最近はScalaに興味あり
• 子持ち
広告代理店での活用方
法をご紹介します。
アジェンダ
◆現場の皆様が困っていること、、、
◆Seleniumとは
 ・メリット
 ・デメリット
◆サンプルコード
・その1(ブラウザ自動操作)
・その2(Webスクレイピング)
◆困ったことあるある
◆まとめ
現場の皆様が困っている
こと、、、
・ブラウザ上で、毎日何度も同じような作業するのめん
どくさい。

(例)csvデータのDL、入稿作業(データ入力) etc...
・数が多すぎて時間的に終わらない。
・業務時間外でも上記の作業を行いたい。
・レポート管理ツールを使って、欲しいデータだけ取ろ
うにも、サイト(媒体社側)でAPIを公開していない。
 そうだ!
自動化すればいいんだ!
Seleniumとは
・Webアプリのテストを自動化するツール。
・IDE と WebDriverがある。

→IDEはfirefoxのプラグイン。

 自動記録でスクリプトに書き起こせる。

→WebDriverはブラウザを操作するライブラリ。

 Java、Rubyなど色々な言語で使える。
・マルチブラウザ対応。(chrome,firefox,IE etc..)
・DOM操作でWebページの要素を特定して操作する。
メリット
・単純だけど時間がかかる作業を人がやらなくて済む。
・Javascriptより要素を特定するメソッドが豊富。
・Selenium IDE(firefoxのプラグイン)を使えば、自動記録
でスクリプトを書き起こせて、実装する手間が省けて楽。
デメリット
・リファレンスが少ない。
・保守管理が大変。

画面の仕様変更に弱く、結構な頻度で改修するはめにな
る。
・対象の画面が複雑だと、IDEで生成したスクリプトが動
かない。
・実行環境のネット回線に依存する。
サンプルコード
ブラウザ自動操作 イメージ
このボタンを押したい
VBAコード例
スクレイピング イメージ
これとりたい
VBAコード例
困ったことあるある
・クリックや入力等のアクションで、スクリプトの処理と
Webページとの間にラグが出てエラーになる。

→間にwaitメソッドを入れて、1秒以上待たせる等の
チューニングが必要。
・非同期処理を実装しているWebページだと止まりやすい

→更新前になく、更新後にある要素を見つけて、その要素
が見つかるまで待たせる処理を入れる。
・フォーム(input要素)に値を入力できない

→Javascriptでdisabled、readonly属性をfalseに書き換
える
まとめ
・手軽に使えて便利。
・動作安定化までは、ひたすらトライアンドエラー
・用法用量を守って、正しくお使いください。

 例) 岡崎市立中央図書館事件
参考ページ
・ClockAhead 開発Blog
・初心者からガッツリスクレイピング
・Webスクレイピングのノウハウを公開します
もっと良い方法があれば、
後でこっそり教えて下さい。

More Related Content

What's hot

Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~
Shinichi Tomita
 
Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会
VOYAGE GROUP
 
Webシステムとちょっと便利なツール
Webシステムとちょっと便利なツールWebシステムとちょっと便利なツール
Webシステムとちょっと便利なツール
Masashi Shinbara
 
jQueryMobile+PHP+MySQL+WebMatrix+ExpressWebで作成・公開する勉強会申し込みサイト
jQueryMobile+PHP+MySQL+WebMatrix+ExpressWebで作成・公開する勉強会申し込みサイトjQueryMobile+PHP+MySQL+WebMatrix+ExpressWebで作成・公開する勉強会申し込みサイト
jQueryMobile+PHP+MySQL+WebMatrix+ExpressWebで作成・公開する勉強会申し込みサイト
Jun-ichi Sakamoto
 

What's hot (20)

Metro#1
Metro#1Metro#1
Metro#1
 
誰も教えてくれない、Excelマクロ/VBAの使い方 先生:田中亨(Office TANAKA)
誰も教えてくれない、Excelマクロ/VBAの使い方 先生:田中亨(Office TANAKA)誰も教えてくれない、Excelマクロ/VBAの使い方 先生:田中亨(Office TANAKA)
誰も教えてくれない、Excelマクロ/VBAの使い方 先生:田中亨(Office TANAKA)
 
WooCommerce & AWS
WooCommerce & AWSWooCommerce & AWS
WooCommerce & AWS
 
Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~
 
Wordpress.comで制作する時のちょっとしたこと
Wordpress.comで制作する時のちょっとしたことWordpress.comで制作する時のちょっとしたこと
Wordpress.comで制作する時のちょっとしたこと
 
a-sap08「a-blog cmsとMovable Type」
a-sap08「a-blog cmsとMovable Type」a-sap08「a-blog cmsとMovable Type」
a-sap08「a-blog cmsとMovable Type」
 
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へJavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
 
WordBench京都9月号
WordBench京都9月号WordBench京都9月号
WordBench京都9月号
 
a-sap09「a-blog cmsとWordPress」
a-sap09「a-blog cmsとWordPress」a-sap09「a-blog cmsとWordPress」
a-sap09「a-blog cmsとWordPress」
 
ゼロからわかるVBA
ゼロからわかるVBAゼロからわかるVBA
ゼロからわかるVBA
 
Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会
 
Webシステムとちょっと便利なツール
Webシステムとちょっと便利なツールWebシステムとちょっと便利なツール
Webシステムとちょっと便利なツール
 
jQueryMobile+PHP+MySQL+WebMatrix+ExpressWebで作成・公開する勉強会申し込みサイト
jQueryMobile+PHP+MySQL+WebMatrix+ExpressWebで作成・公開する勉強会申し込みサイトjQueryMobile+PHP+MySQL+WebMatrix+ExpressWebで作成・公開する勉強会申し込みサイト
jQueryMobile+PHP+MySQL+WebMatrix+ExpressWebで作成・公開する勉強会申し込みサイト
 
ブラック企業から学ぶMVCモデル
ブラック企業から学ぶMVCモデルブラック企業から学ぶMVCモデル
ブラック企業から学ぶMVCモデル
 
Web業務アプリの新しい潮流
Web業務アプリの新しい潮流Web業務アプリの新しい潮流
Web業務アプリの新しい潮流
 
ASP.NET MVCはNullReferenceExceptionを潰している件
ASP.NET MVCはNullReferenceExceptionを潰している件ASP.NET MVCはNullReferenceExceptionを潰している件
ASP.NET MVCはNullReferenceExceptionを潰している件
 
Nodejs and mongodb
Nodejs and mongodbNodejs and mongodb
Nodejs and mongodb
 
Excelマクロ・vbaについて
Excelマクロ・vbaについてExcelマクロ・vbaについて
Excelマクロ・vbaについて
 
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかなぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
 
Kmc例会講座
Kmc例会講座Kmc例会講座
Kmc例会講座
 

Viewers also liked

Medios resistidos y asistidos para la mejora de la velocidad entrenamiento en
Medios resistidos y asistidos para la mejora de la velocidad   entrenamiento en Medios resistidos y asistidos para la mejora de la velocidad   entrenamiento en
Medios resistidos y asistidos para la mejora de la velocidad entrenamiento en
Fernando Farias
 
12a schriftoriëntatie
12a schriftoriëntatie12a schriftoriëntatie
12a schriftoriëntatie
s1009560
 

Viewers also liked (13)

Medios resistidos y asistidos para la mejora de la velocidad entrenamiento en
Medios resistidos y asistidos para la mejora de la velocidad   entrenamiento en Medios resistidos y asistidos para la mejora de la velocidad   entrenamiento en
Medios resistidos y asistidos para la mejora de la velocidad entrenamiento en
 
I am Mine-Uttom kumar
I am Mine-Uttom kumarI am Mine-Uttom kumar
I am Mine-Uttom kumar
 
Yhteisomanagerointia Espoon kaupungin tiedottajille
Yhteisomanagerointia Espoon kaupungin tiedottajilleYhteisomanagerointia Espoon kaupungin tiedottajille
Yhteisomanagerointia Espoon kaupungin tiedottajille
 
Presentatie marathon training Statina 8 feb 2016
Presentatie marathon training Statina 8 feb 2016Presentatie marathon training Statina 8 feb 2016
Presentatie marathon training Statina 8 feb 2016
 
MÉTODO CIENTÍFICO
MÉTODO CIENTÍFICOMÉTODO CIENTÍFICO
MÉTODO CIENTÍFICO
 
Proyecto integrador Primer Semestre Derecho
Proyecto integrador Primer Semestre DerechoProyecto integrador Primer Semestre Derecho
Proyecto integrador Primer Semestre Derecho
 
Collaboration finalc
Collaboration finalcCollaboration finalc
Collaboration finalc
 
Abc.pdf售
Abc.pdf售Abc.pdf售
Abc.pdf售
 
leaflet.GRAVITY
leaflet.GRAVITYleaflet.GRAVITY
leaflet.GRAVITY
 
12a schriftoriëntatie
12a schriftoriëntatie12a schriftoriëntatie
12a schriftoriëntatie
 
24 orë nga jeta e muslimanit. albanian (shqip)
24 orë nga jeta e muslimanit. albanian (shqip)24 orë nga jeta e muslimanit. albanian (shqip)
24 orë nga jeta e muslimanit. albanian (shqip)
 
Profile of Eviva Tour Vietnam | Smile every mile
Profile of Eviva Tour Vietnam | Smile every mileProfile of Eviva Tour Vietnam | Smile every mile
Profile of Eviva Tour Vietnam | Smile every mile
 
FUNC+ Copy1
FUNC+ Copy1FUNC+ Copy1
FUNC+ Copy1
 

Similar to 201605 FA勉強会 seleniumスライド

第2回nseg slideshare
第2回nseg slideshare第2回nseg slideshare
第2回nseg slideshare
ko ty
 
a-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまでa-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまで
girigiribauer
 
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
 

Similar to 201605 FA勉強会 seleniumスライド (20)

Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめようAzureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめよう
 
非同期系統の基礎
非同期系統の基礎非同期系統の基礎
非同期系統の基礎
 
第2回nseg slideshare
第2回nseg slideshare第2回nseg slideshare
第2回nseg slideshare
 
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
 
a-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまでa-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまで
 
WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介
 
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
 
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
 
Mercari scraping
Mercari scrapingMercari scraping
Mercari scraping
 
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
 
ノンプログラマのためのSelenium de DDTはじめの一歩
ノンプログラマのためのSelenium de DDTはじめの一歩ノンプログラマのためのSelenium de DDTはじめの一歩
ノンプログラマのためのSelenium de DDTはじめの一歩
 
誰でも出来るローカル開発環境の作り方
誰でも出来るローカル開発環境の作り方誰でも出来るローカル開発環境の作り方
誰でも出来るローカル開発環境の作り方
 
Serverless Framework 使ってる話(node.js)
Serverless Framework 使ってる話(node.js)Serverless Framework 使ってる話(node.js)
Serverless Framework 使ってる話(node.js)
 

Recently uploaded

Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
Yasuyoshi Minehisa
 
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
Michael Rada
 

Recently uploaded (8)

Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
 
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
 
company profile.pdf
company profile.pdfcompany profile.pdf
company profile.pdf
 
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
 
事例DBサービス紹介資料(Case Study DB service introduction)
事例DBサービス紹介資料(Case Study DB service introduction)事例DBサービス紹介資料(Case Study DB service introduction)
事例DBサービス紹介資料(Case Study DB service introduction)
 
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
 
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
 
共有用_aio基本保守プラン_WordPressサイト_20240509.pdf
共有用_aio基本保守プラン_WordPressサイト_20240509.pdf共有用_aio基本保守プラン_WordPressサイト_20240509.pdf
共有用_aio基本保守プラン_WordPressサイト_20240509.pdf
 

201605 FA勉強会 seleniumスライド