SlideShare a Scribd company logo
1 of 20
SikuliX 知っていますか?
~見た目の感覚で操作できる自動化ツール~
小原増雄
(http://masuo.doorblog.jp )
■私のSikuli活用状況
• 出会ったのは3年前「どんな画面にも使える」と一目惚れ
⇒設備グラフィカル画面、X-Windowsのエミュレータ画面
• それ以来、自宅や仕事場で画面操作の自動化に利用
• 今年になってSeleniumと連携できることに気付き
⇒ブラウザの操作に挑戦中
• これからはSikuliの楽しさを多くの人に伝えたい!
■龍馬を探せ
早速ですがデモです。
今から、歴史上の人物のイラストを表示します。
坂本龍馬 がいくつあるか?
5秒間で数えてみてください。
このように、Sikuliはスクリーン上の画像
を探します
■Sikuliの特徴
•操作位置を画像で検索するところが一番の特徴
•画像はスクリプトの中にも現れる
■ここが好き(簡単)
•環境構築が簡単
⇒Javaランタイムがあれば、セットアップコマンド実行だけでOK
⇒セットアップフォルダを移動しても動く
•操作位置を特定するid、XPathを知らなくていい
⇒ExtJSを使ったコンボボックスのXPathは・・・ (>_<)
•Pythonのdef、While、if elseを覚えたらすぐ書ける
(JythonとJRubyをバンドル、どちらでも選択可能、私はPython派)
■ここが好き(感覚的に)
•操作位置を見た目で判断する感覚
•忠実に模擬してくれるマウスとキーボードの操作感
⇒ 『こういう操作がしたい』を実現してくれます。
■Seleniumに対するイメージ
•ブラウザ操作の自動化ならSelenium
•本格的にやるならEclipsを使わなきゃだめか?
•Seleniumには興味があるけど、Eclipseなどの実行
環境を準備するのは大変そう。
■SikuliからSeleniumの呼び出し
•使い慣れたSikuli IDEからSeleniumが使えるなら
•試していたらなんとか動作しました。
【気付き】
selenium-server-standalone-xxxx.jarの中に
WebDriverのAPIクラスライブラリが入っていて、この
jarファイルから必要なクラスをimportして、呼び出せ
ばいいんだ。
■Yahoo! JAPANのトップページで検索する例
1行追加するだけで
使えるようになった!
SikuliからSeleniumを呼び出すことで、何か楽
しいことが起きそうだ、と期待しています。
それだけではなくて、SeleniumからSikuliを呼
び出すと、きっと今まで出来なかったことがで
きるようになるはず!
という思いを伝えたくて、今日ここに居ます。
■ライブラリとしてのSikuliの活用
•皆様は、既にSeleniumをご利用中ですから、
ライブラリとしてのSikuliの活用を提案します。
•用途としては
1. 次の操作を開始するタイミングをとる
2. ブラウザ操作の途中でファイルをダウンロードする
3. プログラム変更に伴うレイアウトの崩れをチェックする
■exists()で待つ
「名前を付けて保存」ダイアログを待つ例
while not exists( 画像 ):
wait(1)
click(画像):
■exists()で判断
次の操作の分岐判断を見た目で判断する例
while not exists(条件1画像) and not exists(条件2画像):
wait(1)
if exists(条件1画像):
click( )
elif exists(条件2画像):
# 条件2処理
■レイアウトの崩れをチェックする
不良:
正常:
現実的な例かどうかは別として、
チェックするコードを書いてみました。
■Region() + exists()で判断
「レイアウトの崩れをチェックする」のコードです
■SikuliXに無い機能
•操作の記録
•ブレークポイントの設定
•合否判定・テスト結果
⇒テストに利用するためには、いろいろ仕掛けが必要
ご清聴ありがとうございました
Seleniumの使い手である皆さまから、
いろいろなご意見・ご感想を
いただければ幸いです。

More Related Content

What's hot

3 Dモデリング
3 Dモデリング3 Dモデリング
3 Dモデリング浩明 張田
 
イマドキのスライス事情
イマドキのスライス事情イマドキのスライス事情
イマドキのスライス事情Sou Lab
 
タンブラー台紙をつくる
タンブラー台紙をつくるタンブラー台紙をつくる
タンブラー台紙をつくるHaruko Kakiuchi
 
【 Unity道場 1月 ~LWRPとシェーダー~】俺はUVスクロールがしたかっただけなんだ!
【 Unity道場 1月 ~LWRPとシェーダー~】俺はUVスクロールがしたかっただけなんだ!【 Unity道場 1月 ~LWRPとシェーダー~】俺はUVスクロールがしたかっただけなんだ!
【 Unity道場 1月 ~LWRPとシェーダー~】俺はUVスクロールがしたかっただけなんだ!Unity Technologies Japan K.K.
 
東京クロノスで製作中のエディターの紹介
東京クロノスで製作中のエディターの紹介東京クロノスで製作中のエディターの紹介
東京クロノスで製作中のエディターの紹介MaxNeetGames
 
Iron rubyとsilverlightとゲームと
Iron rubyとsilverlightとゲームとIron rubyとsilverlightとゲームと
Iron rubyとsilverlightとゲームとkumaryu
 
AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)
AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)
AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)崇之 清水
 

What's hot (7)

3 Dモデリング
3 Dモデリング3 Dモデリング
3 Dモデリング
 
イマドキのスライス事情
イマドキのスライス事情イマドキのスライス事情
イマドキのスライス事情
 
タンブラー台紙をつくる
タンブラー台紙をつくるタンブラー台紙をつくる
タンブラー台紙をつくる
 
【 Unity道場 1月 ~LWRPとシェーダー~】俺はUVスクロールがしたかっただけなんだ!
【 Unity道場 1月 ~LWRPとシェーダー~】俺はUVスクロールがしたかっただけなんだ!【 Unity道場 1月 ~LWRPとシェーダー~】俺はUVスクロールがしたかっただけなんだ!
【 Unity道場 1月 ~LWRPとシェーダー~】俺はUVスクロールがしたかっただけなんだ!
 
東京クロノスで製作中のエディターの紹介
東京クロノスで製作中のエディターの紹介東京クロノスで製作中のエディターの紹介
東京クロノスで製作中のエディターの紹介
 
Iron rubyとsilverlightとゲームと
Iron rubyとsilverlightとゲームとIron rubyとsilverlightとゲームと
Iron rubyとsilverlightとゲームと
 
AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)
AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)
AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)
 

More from Masuo Ohara

Web Driverでブラウザを操作する
Web Driverでブラウザを操作するWeb Driverでブラウザを操作する
Web Driverでブラウザを操作するMasuo Ohara
 
ロボットファイルを解析して保守支援機能を自作する
ロボットファイルを解析して保守支援機能を自作するロボットファイルを解析して保守支援機能を自作する
ロボットファイルを解析して保守支援機能を自作するMasuo Ohara
 
文書化しない操作手順説明はあり?
文書化しない操作手順説明はあり?文書化しない操作手順説明はあり?
文書化しない操作手順説明はあり?Masuo Ohara
 
OSSツールで始めるPersonal RPA
OSSツールで始めるPersonal RPAOSSツールで始めるPersonal RPA
OSSツールで始めるPersonal RPAMasuo Ohara
 
RPAタスクの実行や予約どうやっていますか?
RPAタスクの実行や予約どうやっていますか?RPAタスクの実行や予約どうやっていますか?
RPAタスクの実行や予約どうやっていますか?Masuo Ohara
 

More from Masuo Ohara (6)

Web Driverでブラウザを操作する
Web Driverでブラウザを操作するWeb Driverでブラウザを操作する
Web Driverでブラウザを操作する
 
ロボットファイルを解析して保守支援機能を自作する
ロボットファイルを解析して保守支援機能を自作するロボットファイルを解析して保守支援機能を自作する
ロボットファイルを解析して保守支援機能を自作する
 
RPALT20210112
RPALT20210112RPALT20210112
RPALT20210112
 
文書化しない操作手順説明はあり?
文書化しない操作手順説明はあり?文書化しない操作手順説明はあり?
文書化しない操作手順説明はあり?
 
OSSツールで始めるPersonal RPA
OSSツールで始めるPersonal RPAOSSツールで始めるPersonal RPA
OSSツールで始めるPersonal RPA
 
RPAタスクの実行や予約どうやっていますか?
RPAタスクの実行や予約どうやっていますか?RPAタスクの実行や予約どうやっていますか?
RPAタスクの実行や予約どうやっていますか?
 

Sikuli x 知っていますか?