GUIを自動で操作するフリーツール:SikuliX では、ポップアップウィンドウを使用することができます。これは、ユーザーに通知したり、入力を促すことができるものです。
本記事では、そんなポップアップウィンドウを扱う際の構文について、まとめます。
なお、以下の例では、英語で表示させることを前提としています。日本語で文字列を表示する場合は、ダブルコーテーションで囲んだだけでは文字化けしてしまう問題があります。そのため、「u”日本語文字列”」のように「u」を記載してUTF-8で表示させるようにしてください。
自動的に消えないポップアップウィンドウの表示
通常のポップアップウィンドウ
popup(“本文文字列”, “ウィンドウのタイトル”)を使用します。
コードサンプル:
popup(“Process is finished.”, “Message Window”)
実行結果:
ウィンドウのタイトル:
Message Window本文:
Process is finished.ウィンドウに表示されるオブジェクト:
[ OK ]ボタン
※ウィンドウ内にある [ OK ] ボタンを押下することで、ポップアップウィンドウを閉じることが可能です。
※ポップアップウィンドウが閉じた際に返される値は、「None」になります。
エラー用のポップアップウィンドウ
popError(“本文文字列”, “ウィンドウのタイトル”)を使用します。
コードサンプル:
popError(“This is error message.”, “Error Window”)
実行結果:
ウィンドウのタイトル:
Error Window本文:
This is error message.ウィンドウに表示されるオブジェクト:
[ OK ]ボタン
※ウィンドウ内にある [ OK ] ボタンを押下することで、ポップアップウィンドウを閉じることが可能です。
※ポップアップウィンドウが閉じた際に返される値は、「None」になります。
はい / いいえ を利用者に問うポップアップウィンドウ
popAsk(“本文文字列”, “ウィンドウのタイトル”)を使用します。
コードサンプル:
popAsk(“Please select.”, “Ask Window”)
実行結果:
ウィンドウのタイトル:
Ask Window本文:
Please select.ウィンドウに表示されるオブジェクト:
[ はい ]ボタン、[ いいえ ]ボタン
※[ はい ] ボタンを押下すれば「True」が返されて、ウィンドウが閉じます。
※[ いいえ ] ボタンを押下すれば「False」が返されて、ウィンドウが閉じます。
利用者に入力(1行分)を促すポップアップウィンドウ
input(“本文文字列”, “テキストボックス上にデフォルトで表示される文字列”, “ウィンドウのタイトル”, True / False)を使用します。最後の4つ目の引数は、「True」もしくは「False」を選択します。この値で、表示されるウィンドウのフォームが変わります。
コードサンプル:
input(“Please input text.”, “Please input.”, “Input Window”, True)
実行結果(Trueの場合):
ウィンドウのタイトル:
Input Window本文:
Please input text.ウィンドウに表示されるオブジェクト:
[ OK ]ボタン、[ 取消 ]ボタン、テキストボックス
実行結果(Falseの場合):
ウィンドウのタイトル:
Input Window本文:
Please input text.テキストボックス:
Please input.ウィンドウに表示されるオブジェクト:
[ OK ]ボタン、[ 取消 ]ボタン、テキストボックス
※テキストボックスに入力後に [ OK ] ボタンを押下すれば、入力内容が返され、ポップアップウィンドウを閉じます。
※[ 取消 ] ボタンを押下すると、テキストボックスの入力内容に問わず「空文字」がソースコード上に返され、ポップアップウィンドウを閉じます。自動で消える場合の同等のポップアップウィンドウでは「None」が返されるのでバグかもしれませんね。。。
利用者に入力(複数行)を促すポップアップウィンドウ
inputText(”本文文字列”, “ウィンドウのタイトル”)を使用します。
コードサンプル:
inputText(“Please input text.”, “Input Window”)
実行結果:
ウィンドウのタイトル:
Input Window本文:
Please input text.ウィンドウに表示されるオブジェクト:
[ OK ]ボタン、[ 取消 ]ボタン、テキストボックス
※テキストボックスに入力後に [ OK ] ボタンを押下すれば、入力内容が受け付けられ、ポップアップウィンドウを閉じます。
※[ 取消 ] ボタンを押下すると、テキストボックスの入力内容に問わず「None」の文字列がソースコード上に返され、ポップアップウィンドウを閉じます。
プルダウンメニューがあるポップアップウィンドウ
select(”本文文字列”, “ウィンドウのタイトル”, [データのセット(配列)])を使用します。
コードサンプル:
select(“Please select.”, “Select Window”, [“item1”, “item2”, “item3”])
もしくは、配列を別で設定し、以下のようにした方が良いと思います。
items = [“item1”, “item2”, “item3”]
select(“Please select.”, “Select Window”, items)
実行結果:
ウィンドウのタイトル:
Select Window本文:
Please Select.プルダウンメニュー:
「items」で設定した項目群ウィンドウに表示されるオブジェクト:
[ OK ]ボタン、[ 取消 ]ボタン
※テキストボックスに入力後に [ OK ] ボタンを押下すれば、選択した項目が返され、ポップアップウィンドウを閉じます。
※[ 取消 ] ボタンを押下すると、テキストボックスの入力内容に問わず「None」がソースコード上に返され、ポップアップウィンドウを閉じます。
ファイル選択させるウィンドウ
popFile(”ウィンドウのタイトル”)を使用します。
コードサンプル:
popFile(“Select File Window”)
実行結果:
ウィンドウのタイトル:
Select Windowウィンドウに表示されるオブジェクト:
[ Select ]ボタン、[ 取消 ]ボタン
※テキストボックスに入力後に [ OK ] ボタンを押下すれば、選択したファイルパスが返され、ポップアップウィンドウを閉じます。
※[ 取消 ] ボタンを押下すると、テキストボックスの入力内容に問わず「空文字」がソースコード上に返され、ポップアップウィンドウを閉じます。
ポップアップウィンドウによって返される値の取得
上記のポップアップウィンドウのうち、単なるメッセージ表示用のポップアップではなく、ユーザーに選択・入力させるような対話型のウィンドウの場合は、ユーザー操作によって得られた値を取得することができます。
返される値を得たい場合は、以下のように記載すると良いでしょう。下記の例では、変数:ans に値が代入されます。
コードサンプル:
ans = popAsk(“Please select.”, “Ask Window”)
まとめ
今回は、ユーザー操作を促したり、ユーザーに通知するためのポップアップウィンドウの使い方について、記載しました。
ぜひ色々な使い方を模索してみて下さい。