Lesson 7: 画面要素検出

この Lesson では、画面要素検出を使って擬似的なフォームの入力を行うシナリオを作成します。

以下のことを学ぶことができます。

✅️ 画面要素検出ステップの使用方法

✅️ 検出画面要素にテキスト入力を行う方法

📥作成済みシナリオをダウンロードする

1. シナリオの作成

今回の Lesson で使うシナリオを作成します。画面中央あたりにある「最初のシナリオを作成」をタップします。既にシナリオが1つ以上ある場合は、右下の + ボタンをタップしてシナリオを作成します。

Image in a image block
初めてシナリオを作成するときは「最初のシナリオを作成」をタップします
Image in a image block
2つ目移行のシナリオを作成するときは、シナリオリスト右下の + をタップします

シナリオに名前をつけて OK をタップします。シナリオの名前は、「Lesson 7」などわかりやすい名前にしておくと良いでしょう。

Image in a image block
Lesson 7 などのシナリオ名を入力して OK をタップします

シナリオが作成されると、画面下部にシナリオコントローラという操作パネルが表示される状態になります。

Image in a image block
正常にシナリオ作成が完了すると、シナリオコントローラが表示された状態になります

2. 練習用アプリを開く

準備でダウンロードした TapEzy 練習用アプリを開きます。

アプリを開くと、各レッスン向け画面へのボタンを含んだホーム画面が表示されます。ホーム画面で「Lesson 7 画面要素検出」ボタンをタップします。

Image in a image block
Lesson 7: 画面要素検出をタップします

チェックボックス、ラジオボタン、テキストフィールドなどが並んだ画面が表示されます。

この画面は擬似的な入力フォームになっていて、タップやテキスト入力が可能になっています。

試しにフォームを操作して動きを確認してください。

タップやテキスト入力に反応します

3. TapEzy でチェックボックスをタップする

それではTapEzy でこのフォームを入力していきましょう。

まずは「作業完了しました」のチェックボックスをチェックするためのステップを追加します。

シナリオコントローラの + ボタンをタップして、「画面要素検出」のステップを追加します。

Image in a image block
シナリオコントローラの + でステップを追加します

Image in a image block
「画面要素検出」をタップします

「画面要素検出」を選択すると、検出したい画面要素を選択する画面が表示されます。

ここでは「作業完了しました」のチェックボックスをチェック状態にすることを考えます。これは「作業完了しました」のテキスト部分をタップすることで実現できます。

まずは画面「探索設定」を表示して、「タップ可能な要素に限定する」のチェックを有効にします。こうすることで、画面内でタップ可能な要素のみが赤枠で表示されるようになるので、選択がしやすくなります。

探索設定の「タップ可能な要素に限定する」を有効にします

続いて、「作業完了しました」のテキスト部分を選択します。選択された部分が赤くなるのが確認できます。この状態で OK をタップします。

「作業完了しました」の赤枠を選択します

画面要素検出のステップが追加されました。追加後に開くステップリストでは、「作業完了しました」のテキストの中心に赤い点が表示された状態になっています。画面要素検出などの検出系のステップは、ステップ追加時点で検出した要素をタップする設定になっているため、このような表示になっています。

一度、追加されたステップをタップして、設定を確認してみましょう。ステップリストに表示されたステップをタップします。

Image in a image block
追加した画面要素検出のステップをタップします
Image in a image block
探索設定を確認します

ステップ編集画面が開き、現在の探索設定が確認できます。まず、「タップ可能な要素に限定する」のチェックが入っているので、タップできない要素は探索の候補になりません。

次に、「必須」となっている項目に着目します。

  • アプリ名は、現在表示されているアプリを特定するための識別子です。現在は、TapEzyの練習アプリが条件になっています。
  • 要素の種類は、対象とする画面要素の種類を表す識別子です。「TextView」となっていて、ラベルなどの編集不可のテキストであることが条件になっています。
  • テキスト内容は、実際に画面に表示されるテキストです。「作業完了しました」に完全一致することを条件としています。

これらの必須条件を満たす画面要素が画面内にあれば、検出成功となります。

ただし、複数の要素が必須条件を満たす場合、「優先」となっている条件に最も合致する要素が選ばれます。

このように画面要素検出は複数の条件の組み合わせで検出の成否を決定するようになっています。さらに別の画面要素についての検出ステップも追加して理解を深めていきましょう。

4. TapEzy でラジオボタンを切り替えるステップを追加する

次は、ラジオボタンを切り替えるためのステップを追加します。

ラジオボタンもタップ可能な要素ですが、ボタンそのものにはテキストがないため、今回は画像に付与されている「説明ラベル」という画面に表示されていない情報を使って検出を行います。

ℹ️ 説明ラベルは画面に直接は表示されていない説明文のようなもので、視覚障害者向けのアクセシビリティ対応などに使われる情報です。例えば、✗のアイコンなどには「close」のような説明ラベルが付与されている場合があります。

以下の手順でステップを追加していきます。

  1. シナリオコントローラの + をタップ
  2. ステップの追加画面で「画面要素検出」を選択
  3. 画面要素を選択する画面で、👍️の画像(最も小さい赤枠) をタップ
  4. 下部の OK をタップ
👍️の画像をタップするステップを追加します
Image in a image block
👍️の画像を選択します

こちらもステップ編集画面を開いて、追加した画面要素検出の探索設定を確認します。

Image in a image block
説明ラベルが必須条件になっていることを確認します

先ほどのアプリ名と要素の種類に加えて、説明ラベルがgood で完全一致することが必須条件になっていることが確認できます。

5. TapEzyでコメント入力を行う

続いて、フォームにある「コメント」のテキスト入力フォームにテキストを入力するステップを追加します。

入力フォームを画面要素検出で検出してテキストを入力する場合は、探索設定で「テキスト入力可能な要素に限定する」のチェックを有効にします。こうすることで、テキスト入力できる要素のみが赤枠で表示されるため、要素の選択がスムーズになります。

以下の手順でステップを追加していきます。

  1. シナリオコントローラの + をタップ
  2. ステップの追加画面で「画面要素検出」を選択
  3. 下部の探索設定をタップ
  4. 「テキスト入力可能な要素に限定する」をチェック
  5. 探索設定を閉じる
  6. 「コメント」と書いてある赤枠をタップ
  7. 下部の OK をタップ
テキスト入力フォームを検出するステップを追加します
Image in a image block
「コメント」のテキスト入力フォームを選択します

ステップを追加できたら、ステップ編集画面を開いて探索設定の確認と検出成功時の動作をテキスト入力するように変更していきます。

まずはステップ編集画面を開いて探索設定を確認します。

Image in a image block
探索設定を確認します

「テキスト入力可能な要素に限定する」のチェックが有効なので、テキスト入力フォームのみが検出候補になります。

また、アプリ名と要素の種類に加えて「内包テキスト」という項目が必須になっているのが確認できます。

ℹ️ 内包テキストは、ボタンや入力欄などの“親要素”の中にある子要素(テキストビューなど)を条件に指定するための項目です。

テキスト入力フォーム自体のテキストはユーザーが入力する内容です。「コメント」と書いてあるのはテキスト入力フォームの中に設置されているヒントの画面要素になります。このように、画面要素自体ではなく、その内部に含まれる画面要素のテキストを探索の条件として使う場合に内包テキストの項目を使います。

そのまま下にスクロールしていくと、検出成功時のアクションとして「検出画面要素をタップ」が設定されているのが確認できます。これまでに追加したチェックボックスやラジオボタンは、検出した要素をタップする動作で問題ないですが、今回はテキスト入力を行いたいので検出成功時のアクションを変更していきます。

まずは現在設定されているタップの動作を削除します。「検出画面要素をタップ」の右にある3点リーダーをタップし、表示されるポップアップから「削除」を選択します。

Image in a image block
検出画面要素をタップを削除します

確認ダイアログが表示されるので、再度「削除」をタップして確定します。

Image in a image block
削除をタップして確定します

これで、検出成功時のアクションがなくなりました。

次に、検出画面要素にテキスト入力を行うアクションを追加していきます。検出成功時のアクションにある「アクションの追加」をタップします。

Image in a image block
アクションの追加をタップします

ステップ追加時と同じようなダイアログが表示されます。検出後のアクショングループにある、「検出画面要素にテキスト入力」をタップします。

ℹ️ 「検出画面要素にテキスト入力」は画面要素検出の検出成功時のアクション追加時にのみ表示されます
Image in a image block
検出画面要素にテキスト入力をタップします

入力するテキストを設定する画面が表示されます。ここでは「問題なし」と設定して OK をタップします。

Image in a image block
入力するテキストの内容を設定してOKをタップします

これで、検出成功時のアクションが変更できました。検出成功時のアクションが、「検出画面要素にテキスト入力」になっていることを確認します。

Image in a image block
検出成功時のアクションが設定されたことを確認します

6. TapEzyで次に進むボタンをタップする

最後に、フォーム入力後に次の画面へ進むためのボタンをタップするステップを追加します。次に進むボタンはタップ可能なボタンなので、「タップ可能な要素に限定する」機能を使います。

以下の手順でステップを追加していきます。

  1. シナリオコントローラの + をタップ
  2. ステップの追加画面で「画面要素検出」を選択
  3. 下部の探索設定をタップ
  4. 「タップ可能な要素に限定する」をチェック
  5. 探索設定を閉じる
  6. 「次に進む」と書いてある赤枠をタップ
  7. 下部の OK をタップ
「次に進む」のボタンをタップするステップを追加します
Image in a image block
「次に進む」のボタンを選択します

こちらもステップ編集画面を開いて、追加した画面要素検出の探索設定を確認します。

Image in a image block
探索設定を確認します

タップ可能な要素に限定するのチェックが有効になっており、内包テキストが「次に進む」で完全一致することが必須条件になっていることが確認できます。

6. シナリオを再生する

これでシナリオの作成は完了です。さっそく再生して、どのように動作するか確認してみましょう。
シナリオの再生はシナリオコントローラの ▶ ボタンを使います。

Image in a image block
▶でシナリオの再生を開始します
ℹ️ 画面要素検出は、画面の表示そのものではなく、その構成情報をもとに検出を行っています。そのため、画像検出やテキスト検出使用時に表示される画面収録の許可を促すダイアログは表示されません。

シナリオ再生が開始すると自動的にフォームを入力していく様子が確認できます。

再生の停止は ■ ボタンで行います。

自動でフォームを入力していきます
Image in a image block
再生の停止は■ボタンで行います

まとめ

この Lesson では、以下の内容を学びました:

  • 画面要素を検出して自動的にタップする方法
  • テキスト、説明ラベル、内包テキストなどの探索設定項目
  • テキスト入力フォームを検出して指定したテキスト入力を行う方法

シナリオを再生することで、指定した画面要素をタップしたりテキスト入力行ったりする動作が確認できました。

これで、TapEzy を使った簡単なフォーム自動入力ができるようになりました。

より詳しい説明はそれぞれ下記にありますので、ここからさらに設定を変更する場合は参考にしてください。