SikuliX 知っていますか?
~見た目の感覚で操作できる自動化ツール~
小原増雄
(http://masuo.doorblog.jp )
■私のSikuli活用状況
• 出会ったのは3年前「どんな画面にも使える」と一目惚れ
⇒設備グラフィカル画面、X-Windowsのエミュレータ画面
• それ以来、自宅や仕事場で画面操作の自動化に利用
• 今年になってSeleniumと連携できることに気付き
⇒ブラウザの操作に挑戦中
• これからはSikuliの楽しさを多くの人に伝えたい!
■龍馬を探せ
早速ですがデモです。
今から、歴史上の人物のイラストを表示します。
坂本龍馬 がいくつあるか?
5秒間で数えてみてください。
Sikuli x 知っていますか?
Sikuli x 知っていますか?
このように、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

PDF
3Dプリンタを使おう - 20131110
PDF
kawaz-anthology-2 plan
PPT
Cocoa勉強会201302
PPTX
日本列島VRとHoleLenz
PDF
Inkscapeで折り図を描く〜1つの図を描く〜
PDF
LibreOffice : Drawをもっと使いこなそう
PDF
ピタゴラスイッチでAWS自動化(JAWS-UG-LT @shimy_net )
PDF
Inkscapeで折り図を描く〜折り図を並べる〜
3Dプリンタを使おう - 20131110
kawaz-anthology-2 plan
Cocoa勉強会201302
日本列島VRとHoleLenz
Inkscapeで折り図を描く〜1つの図を描く〜
LibreOffice : Drawをもっと使いこなそう
ピタゴラスイッチでAWS自動化(JAWS-UG-LT @shimy_net )
Inkscapeで折り図を描く〜折り図を並べる〜

What's hot (7)

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

More from Masuo Ohara (7)

PDF
PADでロジックを可視化 ~構造化プログラミングに適した問題解析図~ RPA Communityライトニングトーク
PDF
Web Driverでブラウザを操作する
PDF
ロボットファイルを解析して保守支援機能を自作する
PDF
RPALT20210112
PDF
文書化しない操作手順説明はあり?
PDF
OSSツールで始めるPersonal RPA
PDF
RPAタスクの実行や予約どうやっていますか?
PADでロジックを可視化 ~構造化プログラミングに適した問題解析図~ RPA Communityライトニングトーク
Web Driverでブラウザを操作する
ロボットファイルを解析して保守支援機能を自作する
RPALT20210112
文書化しない操作手順説明はあり?
OSSツールで始めるPersonal RPA
RPAタスクの実行や予約どうやっていますか?
Ad

Sikuli x 知っていますか?