(O+P)ut

OutPut Log by SE in SIer



(O+P)ut

Output Log By Engineer

【SikuliX】表示画面による条件分岐処理

スポンサーリンク

Sikulixとは?

Sikuli/Sikulixとは、画像処理ライブラリであるOpenCV*1を利用したRPAツールで実体はオープンソースのJavaプログラムです。

本記事では以下の記事にて実施したブラウザ操作の結果画面に応じた処理を行う方法について流れを解説します。

Sikulixでifelse文

まずは文法としてですがPythonと同等です。

a = 7
if( a >= 10 ):
    print "a >= 10"
elif( a > 5 ):
    print "10 > a > 5"
else:
    print "a <= 5"

上記を実行すればメッセージ欄に「10 > a > 5」が出力されます。

これは以下のロジックです。

if 条件式1:
条件式1がTrueのときに行う処理
elif 条件式2:
条件式1がFalseで条件式2がTrueのときに行う処理
else:
すべての条件式がFalseのときに行う処理

existを用いた画面における分岐

以下の疎通チェッカーの「正常稼動中」「応答なし」を分岐の例にします。

事前にスクリーンショットを撮影し、以下のようにexistを条件式の中を記述します。
f:id:mtiit:20190422134450p:plain

ちなみに.pyファイルの中身は以下のようになっています。

if( exists( "1555907912877.png" ) ):
    print "応答なし"
elif( exists( "1555907931639.png" ) ):
    print "応答あり"
else:
    print "画面エラー"

ポイントですが、exsitsは第二引数で待ち時間を指定できます。
デフォルトのまま起動すると、条件分岐が下に行けば行くほど時間がかかってしまいます。待ち時間が不要であれば以下のように待ち時間を「0」と指定してください。

if( exists( "1555907912877.png",0 ) ):

画面遷移にかかる時間が気になるのであれば以下のようにtime.sleep(秒数)でスリープ処理を行ってください。

time.sleep(5)

終わりに

本記事ではSikuliXにおいて遷移画面が動的に変化する場合の条件分岐処理を説明しました。
以上、参考になれば幸いです。

*1:OpenCV : Open Source Computer Vision Libraryの略で、コンピュータビジョン向けのライブラリ


他の記事を読む