SikuliXでifとexistsを使った条件分岐を解説

SikuliXでifとexistsを使った条件分岐を解説

 

★悩み★
・SikiliXでif文を使った条件分岐ってできる?
・SikuliXで「画像がある」や「画像がない」という条件分岐ってできる?
・SikuliXのif文とexistsを使った条件分岐の処理を作りたい。



こういった「悩み」に答えます。
 

★本記事の内容★
➀ 準備:SikuliXのインストールと起動
➁ SikuliXでif文を使って条件分岐を実現する方法
③ if文とexistsを使い「画像による条件分岐」をSikuliXで実現する方法



これからご紹介する「SikuliXでifとexistsを使った条件分岐を解説」を実践したことで、30分以内で「SikuliXで画像を使った条件分岐」を作れました(下の動画参照)。
 

SikuliXのif、elif、elseとexistsで画面による条件分岐プログラム
SikuliXの「if」「elif」「else」「exists」を使った例



記事の前半では「SikuliXのインストールや起動といった環境の準備」を解説します。
記事の後半では「if文を使った条件分岐」や「if文とexistsによる画像で条件分岐」を実現する方法を紹介します。
 

この記事を読み終えることで、「SikuliXの条件分岐」を使える状態になります。
 

★SikuliXとは★
SikuliX(シクリ)とは、画像認識を用いたGUI操作自動化ツールです。簡単な操作で「エクセル入力の自動化」などに利用できます。「検索ボックスに検索ワードを入力して検索ボタンをクリックする」などの操作を自動化できます。
さらに詳しく知りたい方には、以下の記事がオススメです。
>> 【要点解説】SikuliXとは?を解消!3ステップで入門する方法を解説



ちなみに、筆者が2週間でSikuliXを学んだ方法や手順について以下で公開しています。皆様の学習の参考になれば嬉しいです。

>> SikuliXに0から入門し操作を自動化するまでのロードマップを公開中

 

準備:SikuliXのインストールと起動

準備:SikuliXのインストールと起動


「準備:SikuliXのインストールと起動」に関してご紹介します。
 

★SikuliXでifとexistsを使った条件分岐を作るための準備手順★
手順1:SikuliXをインストール
手順2:SikuliXの起動



上記の流れで、「SikuliXでifとexistsを使った条件分岐を作るための環境準備」ができます。
 

上記の各手順は、以下の日時で動作確認済みです。
動作確認済み日時:2021年5月2日



以降で、上記「SikuliXでifとexistsを使った条件分岐を作るための準備手順」の各手順に関してご説明します。
 

手順1:SikuliXをインストール

「手順1:SikuliXをインストール」に関して説明します。
 

お使いのパソコンにSikuliXをインストールしましょう。



「SikuliXをWindowsにインストールする手順」に関しては、以下の記事をご覧ください。
>> 【Windows向け】SikuliXのインストール手順と基本的な使い方
 

「macOS(Mac)にインストールする手順」に関しては、以下の記事をご覧ください。
>> 【Mac向け】SikuliXのインストール手順と基本的な使い方
 

以上が、「手順1:SikuliXをインストール」となります。
 

手順2:SikuliXの起動

「手順2:SikuliXの起動」に関して説明します。
 

インストールしたSikuliXを起動し、「ifとexistsを使った条件分岐のプログラム」を記載できる状態にしましょう。



「WindowsにインストールしたSikuliXを起動する手順」に関しては、以下の記事をご覧ください。
>> 【Windows向け】SikuliXのインストール手順と基本的な使い方
 

「macOS(Mac)にインストールしたSikuliXを起動する手順」に関しては、以下の記事をご覧ください。
>> 【Mac向け】SikuliXのインストール手順と基本的な使い方
 

以上が、「手順2:SikuliXの起動」となります。
 

Javaをインストールし、SikuliXのjarファイルをダウンロードすることで、簡単にSikuliXの環境を準備できます。
以降で、ifとexistsを使った条件分岐に関して解説します。


 

SikuliXでif文を使って条件分岐を実現する方法

SikuliXでif文を使って条件分岐を実現する方法


「SikuliXでif文を使って条件分岐を実現する方法」に関してご紹介します。
 

★SikuliXでif文を使って条件分岐を実現★
① if文の構文を解説(if/elif/else)
➁ SikuliXのif文を使った条件分岐プログラムの作成と実行



SikuliXのif文使うことで、条件分岐(変数の値が1未満であればこの処理をするなど)を実現できます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年5月15日
動作確認済み環境:Windows pro 11



以降で、上記「SikuliXでif文を使って条件分岐を実現」の各項目に関してご説明します。
 

if文の構文を解説(if/elif/else)

「if文の構文を解説(if/elif/else)」に関して説明します。
 

SikuliXで条件分岐を伴う処理を実現したい場合、「if」を使います。



SikuliXで条件分岐を作りたい場合、以下の「if」を使います。
 

★ifのリファレンス★
処理:指定した条件を満たす場合、以降の処理を実行させる
使い方:if 条件



SikuliXの「if」を使った条件分岐の書き方としては、以下の3パターンがあります。
 

★ifのパターン①★
・書き方
 if 条件:
  条件を満たす(True)場合に実行される処理
・例
 if num < 0:
  print “numは0未満です。”
・実行結果
 numが0以上の場合、何も表示されない。
 numが0未満の場合、「numは0未満です。」が表示される。

 

★ifのパターン➁★
・書き方
 if 条件:
  条件を満たす(True)場合に実行される処理
 else:
  条件を満たさない(False)場合に実行される処理
・例
 if num < 0:
  print “numは0未満です。”
 else:
  print “numは0以上です。”
・実行結果
 numが0以上の場合、「numは0以上です。」が表示される。
 numが0未満の場合、「numは0未満です。」が表示される。

 

★ifのパターン➂★
・書き方
 if 条件:
  条件を満たす(True)場合に実行される処理
 elif 条件:
  「if 条件」を満たさない(False)かつ「elif 条件」を満たす(True)場合に
   実行される処理
 else:
  「if条件」と「elif条件」を満たさない(Flase)場合に実行される処理
・例
 if num < 0:
  print “numは0未満です。”
 elif num == 0:
  print “numは0です。”
 else:
  print “numは0より大きいです。”
・実行結果
 numが0未満の場合、「numは0未満です。」が表示される。
 numが0である場合、「numは0です。」が表示される。
 numが0より大きい場合、「numは0より大きいです。」が表示される。



以上が、「if文の構文を解説(if/elif/else)」となります。
 

SikuliXのif文を使った条件分岐プログラムの作成と実行

「SikuliXのif文を使った条件分岐プログラムの作成と実行」に関して説明します。
 

if/elif/elseを用いてSikuliXで条件分岐を実現するプログラムを作成してみましょう。



起動したSikuliX上において、以下のプログラムを作成してください。
 

SikuliXでif、elif、elseを使った条件分岐のプログラム
SikuliXでif、elif、elseを使った条件分岐のプログラム

 

 

num = 0

if num < 0:
    print "numは0未満です。"
elif num == 0:
    print "numは0です。"
else:
    print "numは0より大きいです。"

print "SikuliXでif/elif/elseを使った条件分岐を実現しました。"



プログラム作成後、SikuliX上の「実行」ボタンをクリックします。

クリック後、下のデモ動画のように、SikuliXで「if」「elif」「else」を使って条件分岐を実現できます。
 

SikuliXでif、elif、elseを使った条件分岐のプログラム



以上が、「SikuliXのif文を使った条件分岐プログラムの作成と実行」となります。
 

SikuliXで「if」「elif」「else」を使うことで、条件分岐を用いた処理を作ることができます。


 

if文とexistsを使い「画像による条件分岐」をSikuliXで実現する方法

if文とexistsを使い「画像による条件分岐」をSikuliXで実現する方法


『if文とexistsを使い「画像による条件分岐」をSikuliXで実現する方法』に関してご紹介します。
 

★SikuliXのifとexistsで画像による条件分岐を実現★
① exists文の構文を解説
➁ SikuliXのifとexistsで画像による条件分岐プログラムの作成と実行



SikuliXのifとexistsを使うことで、画像による条件分岐処理を実現できます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年5月2日
動作確認済み環境:macOS Catalina



以降で、上記「SikuliXのifとexistsで画像による条件分岐を実現」の各項目に関してご説明します。
 

exists文の構文を解説

「exists文の構文を解説」に関して説明します。
 

SikuliXで画面内に指定した画像が存在するかを確認したい場合、「exists」を使います。



SikuliXで「指定した画像が画面内に存在するか」を確認したい場合、以下の「exists」を使います。
 

★existsのリファレンス★
処理:指定した画像が画面内に存在するかどうかを確認する
   画像が存在する場合、Trueを返却する
   画像が存在しない場合、Falseを返却する
使い方:exists(画像, タイムアウト値[秒])
参照:SikuliXのexistsに関するリファレンス(公式サイト)



上記のexistsは、「if/elif/else」と組み合わせて使う場合が多いです。

SikuliXの「if」と「exists」を使った条件分岐の書き方として、以下の3パターンがあります。
 

★ifとexistsのパターン①★
・書き方
 if exists(画像, タイムアウト値[秒]):
  画像が画面内に存在する場合(True)に実行される処理
・例
 if exists(“1651484534966.png”, 10):
  print “Safariを見つけました。”
・実行結果
 画面内にSafariがある場合、「Safariを見つけました。」が表示される。
 画面内にSafariがない場合、何も表示されない。

 

★ifとexistsのパターン➁★
・書き方
 if exists(画像, タイムアウト値[秒]):
  画像が画面内に存在する場合(True)に実行される処理
 else:
  画像が画面内に存在しない場合(False)に実行される処理
・例
 if exists(“1651484534966.png”, 10):
  print “Safariを見つけました。”
 else:
  print “見つかりませんでした。”
・実行結果
 画面内にSafariがある場合、「Safariを見つけました。」が表示される。
 画面内にSafariがない場合、「見つかりませんでした。」が表示される。

 

★ifとexistsのパターン➂★
・書き方
 if exists(画像1, タイムアウト値[秒]):
  画像1が画面内に存在する場合(True)に実行される処理
 elif exists(画像2, タイムアウト値[秒]):
  「画像1が画面内に存在しない(False)」かつ
  「画像2が画面内に存在する(True)」を満たす場合に実行される処理 
 else:
  画像1と画像2が画面内に存在しない場合(False)に実行される処理
・例
 if exists(“1651484534966.png”, 10):
  print “Safariを見つけました。”
 elif exists(“1651497545145.png”, 10):
  print “Chromeを見つけました。”
 else:
  print “見つかりませんでした。”
・実行結果
 画面内にSafariがある場合、「Safariを見つけました。」が表示される。
 画面内にSafariがなくChromeがある場合、「Chromeを見つけました」が表示される。
 画面内にChromeとSafariがない場合、「見つかりませんでした。」が表示される。



以上が、「exists文の構文を解説」となります。
 

SikuliXのifとexistsで画面による条件分岐プログラムの作成と実行

「SikuliXのifとexistsで画面による条件分岐プログラムの作成と実行」に関して解説します。
 

if/elif/elseとexists用いて、SikuliXで画面による条件分岐を実現するプログラムを作成してみましょう。



起動したSikuliX上において、「スクリーンショットを撮る」(下図の赤枠)をクリックし、「Safariのアイコン」と「Chromeのアイコン」の画像を撮影しましょう。
その後、以下のプログラムを作成してください。
 

SikuliXのif、elif、elseとexistsで画面による条件分岐プログラム
SikuliXのif、elif、elseとexistsで画面による条件分岐プログラム

 

if exists("1651484534966.png", 10):
    print "Safariを見つけました。"
elif exists("1651497545145.png", 10):
    print "Chromeを見つけました。"
else:
    print "見つかりませんでした。"
print "SikuliXのif/elif/elseの動作終了"



プログラム作成後、SikuliX上の「実行」ボタンをクリックします。

クリック後、下のデモ動画のように、if/elif/elseとexistsを使って、画像による条件文を処理を実現できます。
 

SikuliXのif、elif、elseとexistsで画面による条件分岐プログラム
SikuliXのif、elif、else、existsで画像による条件分岐



以上が、「SikuliXのifとexistsで画面による条件分岐プログラムの作成と実行」となります。
 

SikuliXで「if」「elif」「else」と「exists」を使うことで、画像を使った条件分岐を作ることができます。


ifとexistsは「ある画像が画面に存在する場合、その画像をクリックする」などを実現したい場合に、click関数と組み合わせて使われることが多いです。「click関数とは何か?」や「使い方」に関しては、以下の記事をご覧ください。
>> SikuliXでマウスのクリックや移動操作を自動化
 

 

ちなみに、「SikuliXをシステムで利用する場合の注意点」や「SikuliXでAndroidを操作する方法」などを知りたい方には、以下の記事で紹介している本がオススメです。
>> 【入門者向け】SikuliXの勉強に役に立つオススメ書籍3冊

 

【まとめ】SikuliXでifとexistsを使った条件分岐を解説

【まとめ】SikuliXでifとexistsを使った条件分岐を解説


いかがでしたでしょうか?
SikuliXで「if/elif/else」と「exists」を使って、画像を用いた条件分岐を実現するプログラムとデモ動画を用いて解説し、以下の悩みを解決しました。
 

★悩み★
・SikiliXでif文を使った条件分岐ってできる?
・SikuliXで「画像がある」や「画像がない」という条件分岐ってできる?
・SikuliXのif文とexistsを使った条件分岐の処理を作りたい。



画像が画面内にあるかどうかの条件分岐を実現したい場合、SikuliXの利用を検討してみてください。

コメント

タイトルとURLをコピーしました