【SikuliX】ポップアップウィンドウを使ってみよう

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”)

まとめ

今回は、ユーザー操作を促したり、ユーザーに通知するためのポップアップウィンドウの使い方について、記載しました。

ぜひ色々な使い方を模索してみて下さい。

スポンサーリンク