★質問・概要
Q.JobAutoでThunderbird(サンダーバード)を操作するロボットを作成していますが、次の問題で処理が安定しません。どうすればよいですか?
- Thunderbirdの起動完了までの時間が毎回異なり、画面の準備が整う前に操作してエラーになる。
- メールフォルダに表示される未読件数が変わるため、アプリ操作で目的のフォルダを見つけられない。
★回答
Thunderbirdの起動待機と、フォルダ名の指定方法を見直してください。起動直後の操作にはJobAutoの「画像が出るまで待つ」アクションを使用し、操作に必要な画面が表示されてから次のアクションへ進むようにします。
フォルダの未読件数が実行のたびに変化する場合は、アプリ操作の要素マッチングで「名前」を使用しない設定を先に試します。名前による識別が必要なら、変化する件数を正規表現で吸収する方法があります。
具体的な操作例は、Thunderbirdを起動し、指定したフォルダを操作するサンプルをご確認ください。
1.Thunderbirdの起動が完了するまで待つ
アプリの起動直後に次の操作を実行すると、ウィンドウは開いていても、メールフォルダなどの画面がまだ表示されていないことがあります。固定の待機秒数だけに依存せず、次の操作に必要な表示が確認できてから処理を進める構成にします。
- Thunderbirdを起動し、JobAutoから操作対象のアプリへ接続するアクションを配置します。
- フォルダ一覧など、次の操作に必要な画面が表示されたことを確認できる画像を選びます。未読件数など、毎回変化する数字を含まない範囲を選ぶと認識が安定しやすくなります。
- 「画像が出るまで待つ」アクションを追加し、待機対象の画像を設定します。
- 起動に時間がかかる場合を想定し、画像が見つかるまでのタイムアウト時間を設定します。
- その後にフォルダ選択などのアプリ操作アクションを配置し、起動時間が異なる状況でも動作するかテストします。
「画像が出るまで待つ」の機能は、JobAutoで指定した画像が出るまで待つ方法をご確認ください。タイムアウト時間をまとめて見直す場合は、アプリのタイムアウト時間の設定も参考になります。
2.未読件数が変わるフォルダを指定する
Thunderbirdのフォルダ名などに未読メール件数が含まれていると、未読件数の増減によって要素の「名前」が変わり、以前の設定で要素を認識できないことがあります。
まず、要素マッチングの高度な設定で「名前」を使用しない方法を試してください。ほかの要素情報だけで目的のフォルダを特定できる場合は、名前の変化の影響を受けずに操作できます。
名前を使用しないと対象を絞り込めない場合は、「名前」に正規表現を使って、変化する文字列を許容する方法を検討します。
| 画面上の名前(例) | 要素の「名前」の指定例 | 考え方 |
|---|---|---|
受信トレイ (3) | 受信トレイ.* | 「受信トレイ」に続く可変部分を許容する |
受信トレイ (12) | 受信トレイ.* | 未読件数が変わっても同じ条件で探す |
上記は正規表現の考え方を示した例です。 実際のThunderbirdの要素名・表示内容は環境によって異なります。.*は任意の文字が0文字以上続くことを表す正規表現です。検索条件を広げすぎると別のフォルダまで一致する可能性があるため、固定できる文字は残してください。
要素名の指定方法は、JobAutoの要素マッチングを安定させる方法|名前に正規表現を使うをご確認ください。
3.設定したフォルダを正しく認識できるか確認する
- アプリデザインで、対象となるThunderbirdのフォルダを選び、マッチング方式を「要素」にします。
- 高度な設定の「名前」を使用しない設定、または正規表現による指定を試します。
- 条件に一致する要素が何件見つかったかを確認します。
- 「操作対象にフォーカス」を使い、目的のフォルダが選択されているか確認します。
- 複数の要素が見つかる場合は、「名前」「クラス」「タイプ」「要素インデックス」などの条件を見直します。
- 未読件数が変化した後も、同じフォルダを操作できるかテストします。
画面表示が変わった後、以前の要素情報が残っている場合は「キャッシュクリア」も確認してください。対象要素が画面に表示されるまで時間がかかる場合は、アクションのタイムアウト時間も確認します。
確認方法は、アプリデザインの使い方と、アプリの要素から値を取得する方法にある要素マッチングの設定例をご参照ください。
4.起動待機と要素指定の使い分け
| 発生している問題 | 主に確認する設定 |
|---|---|
| Thunderbird起動直後にフォルダ操作が失敗する | 「画像が出るまで待つ」とタイムアウト |
| 未読件数の変化後にフォルダが見つからない | 要素の「名前」を使用しない設定、または正規表現 |
| 目的とは別のフォルダが選択される | 検索で見つかった要素数・フォーカス・インデックス |
| 画面が切り替わったあとに操作が不安定になる | キャッシュクリア、対象の再認識、タイムアウト |
待機だけを長くしても未読件数の変化による要素指定の問題は解決しません。また、正規表現だけを設定してもThunderbirdの画面の準備が終わる前に操作する問題は解消しません。それぞれの症状に対応した設定を行ってください。
5.それでも操作が安定しない場合
- 起動待機:待機対象の画像は、起動前後で明確に表示が変わる箇所か確認します。
- 画像の一致:画面の表示倍率やウィンドウサイズが変わっていないか確認します。
- 名前の指定:未読件数を含む固定の文字列だけで要素を指定していないか確認します。
- 複数要素の一致:正規表現で別のフォルダまで一致していないか確認します。
- 画面更新後:キャッシュクリアとタイムアウトの設定を確認します。
- 実行環境:ロボデザインでのテストとスケジュール実行で、Thunderbirdの画面・ウィンドウ状態に違いがないか確認します。
アプリ操作の動作確認では、Thunderbirdの起動が速い場合と遅い場合、未読件数が異なる場合の両方をテストしてください。
関連するマニュアル・ナレッジ
- Thunderbirdの起動とメールフォルダ操作のサンプル:起動待機と未読件数が変わるフォルダの操作例
- JobAutoで画像が出るまで待つ方法:起動後の画面表示を待つアクション
- JobAutoの要素マッチングを安定させる方法:名前の正規表現・要素インデックス・キャッシュクリア
- JobAutoのアプリデザインの使い方:操作対象の要素を指定・確認
- アプリのタイムアウト時間の設定:待機時間の見直し
- JobAutoで起動中のアプリに接続する方法:Thunderbirdなどのアプリへ接続
