メインコンテンツまでスキップ

セレクター ガイド

セレクターは、akaBot がランタイム時にデスクトップ、Web、Java、SAP アプリケーションの UI 要素を一意に識別するために使用する XML フラグメントです。UI アクティビティで 画面上で指定(Indicate on screen) をクリックすると、akaBot Studio が自動的に対象要素を検査し、その技術的な階層と属性を記述するセレクターを生成します。

このガイドでは、akaBot でのセレクターの仕組み、「選択オプション」ウィンドウでの検索ステップの設定方法、およびセレクター エディター(セレクター ダイアログ)を使用したセレクターの検査、修正、パラメーター化の方法について説明します。


セレクターの種類と検索ステップ​

要素を指定する際、akaBot は複数のセレクタータイプを生成できます。これらはアクティビティの ターゲット にある SearchSteps(TargetSearchSteps)プロパティに対応します:

セレクタータイプコード内フラグ動作使用する場合
Strict セレクターStrictSelector正確な技術属性(tag、id、name、class、automationId など)を使用して、階層的な XML 構造で要素を照合します。アプリケーションが安定した構造と信頼できる属性を持つ場合に最適です。最速かつ最も精度が高い方式です。
Fuzzy セレクターFuzzySelector設定可能な 精度(Accuracy) スライダー(範囲:0.4 → 1.0、デフォルト:0.5)に対して類似スコアを使用して要素属性を比較します。要素属性がわずかに異なる値や動的なトークンを含む場合に最適です。厳密な照合よりも高い耐性を持ちます。
Image セレクターImage精度 スライダー(範囲:0.5 → 1.0、デフォルト:0.8)で制御され、キャプチャされたスクリーンショット領域を画面と照合することで、視覚的に要素を識別します。要素にアクセス可能な技術属性がない場合、または仮想化・Canvas・リモートデスクトップ環境にある場合に最適です。
CV セレクターCV視覚的な外観とレイアウトに基づいて、コンピュータービジョン アルゴリズムを使用して要素を特定します。DOM/UIA ツリーが利用できない Citrix、リモートデスクトップ、または画像中心のインターフェースで使用します。
セマンティックセレクターSemanticAI 駆動の自然言語の記述を使用して、コンテキストに基づいて要素を特定します。属性とレイアウトが頻繁に変わる動的な Web ページに最適です。

耐性戦略: 複数のセレクタータイプを同時に有効にできます(例:Strict + Fuzzy + Image)。akaBot はランタイム時に順番に確認し、プライマリセレクターが解決に失敗した場合は後続のステップにフォールバックします。


「選択オプション」ウィンドウ​

UI アクティビティで 画面上で指定 をクリックすると、akaBot Studio が最小化され、フローティングの 「選択オプション」 ツールバーが表示されます。

対象要素の上にカーソルを合わせてカラーボーダーでハイライトされたら、クリックまたは 右 Ctrl キーを押して選択します。

フローティングツールバーには以下の案内が表示されます:

指定したい要素の上にカーソルを合わせ、クリック(または右 Ctrl)して選択します

要素が検出されない場合は、UI フレームワークの変更(F4)、コンピュータービジョンの有効化(F8)、または画像領域選択(F3)をお試しください。

インジケーターを数秒間一時停止するには、F2 を押します。

選択されたセレクターを検証中です。停止するには Esc を押します。

selection-options.png

ホットキーと操作​

キー / 操作機能説明
F4UI フレームワークの変更利用可能な自動化フレームワークを順番に切り替えます:Default(ネイティブブラウザー / UIA / SAP / Java)、UIA(UI オートメーション)、MSAA(Microsoft アクティブ アクセシビリティ)。
F8コンピュータービジョンコンピュータービジョン(CV)検査モードに切り替えます。
F3画像領域対象要素のスクリーンショットをキャプチャするための領域ベースの画像選択を有効にします。
F2インジケーターの一時停止指定前にドロップダウンメニュー、ツールヒント、またはフライアウトを開けるように、検出を数秒間一時停止します。
Esc停止 / キャンセル検証プロセスを停止するか、保存せずに要素の指定をキャンセルします。
右 Ctrl / クリック要素の選択現在ホバーされている要素を選択します。
確認(Confirm)選択の保存生成されたセレクターをアクティビティの ターゲット に保存し、akaBot Studio に戻ります。
精度スライダーしきい値の制御Fuzzy セレクター(デフォルト:0.5)と Image セレクター(デフォルト:0.8)の照合感度を設定します。

セレクター エディター(セレクター ダイアログ)​

指定後にセレクターを検査、微調整、または編集するには:

  1. ワークフロー デザイナーでアクティビティを選択します。
  2. プロパティ パネルで 入力 > ターゲット を展開します。
  3. セレクター(または FuzzySelector)フィールドの横にある省略記号(...) ボタンをクリックします。
  4. セレクター ダイアログ が開きます。

selector-dialog.png

ツールバーとセクション​

  • 検証(Validate)(状態ボタン) - セレクターが現在画面上の開いているウィンドウ/要素に解決されるかどうかを確認します。ボタンの色が検証状態を示します:

    • 緑: 有効 — 画面上で要素が見つかりました。
    • 赤: 無効 — 要素が見つかりませんでした。
    • 黄 / オレンジ: 不明 / 変更済み — セレクターが編集されており、再検証されていません。
    • グレー: 検証中、またはセレクターが空です。
  • ハイライト(Highlight) - 画面上で検出された要素の視覚的なハイライト(赤いボーダー)を切り替えます。検証状態が 有効(緑)の場合にのみ有効です。

  • 属性の編集(Edit Attributes)(エクスパンダー) - 要素に対して検出されたすべての XML ノードと属性のチェックリストを表示します。属性にチェックを入れるかはずすかで、セレクターへの追加・除外を動的に制御できます。

  • セレクターの編集(Edit Selectors)(エクスパンダー) - 構文ハイライトを備えた完全な XML テキストエディターで、生のセレクター文字列を直接編集できます。

変数と引数の使用​

akaBot では、二重波括弧 {{variableName}} または {{argumentName}} を使用して変数または引数を属性値に直接挿入することで、セレクターを動的にすることができます。

セレクターの編集 テキストエディター内では、キーボードショートカットまたは右クリックのコンテキストメニューで変数と引数を管理できます:

操作ショートカット説明
変数の選択Ctrl + Space既存のワークフロー変数を選択するポップアップを開きます。
引数の選択Ctrl + Shift + Space既存のワークフロー引数を選択するポップアップを開きます。
変数の作成Ctrl + K新しい変数をすばやく作成し、{{newVar}} をセレクターに挿入します。
引数の作成Ctrl + M新しい引数をすばやく作成し、{{newArg}} をセレクターに挿入します。

selector-dialog-short-cut.png


不安定なセレクターの修正​

セレクターが不安定な状態とは、ある実行では動作するが別の実行では失敗する状態です。これは通常、属性値が動的な場合(例:動的に生成されたセッション ID や不安定な CSS クラス)に発生します。

ヒント — 高度な分析には UI エクスプローラーを使用する: 基本的なセレクター ダイアログでセレクターを安定させられない場合は、UI エクスプローラー を開いて UI ツリー全体を検査し、祖先/子孫タグを調べ、代替の安定した属性を見つけてください。完全なガイドについては、UI エクスプローラーの使い方 を参照してください。

ステップ 1 — 属性の編集で動的属性のチェックをはずす​

  1. セレクター ダイアログ を開きます。
  2. 属性の編集 を展開します。
  3. 不安定な属性のチェックをはずします:
    • ランダムな数字を含む動的な ID(例:id='user_98412')。
    • 不安定なクラス(例:class='btn hover focused')。
    • 順序インデックス(idx):ページに新しい要素が追加されるとインデックスがずれるため、可能な限り idx のチェックをはずしてください。

ステップ 2 — 安定した属性を残す​

残りの属性が対象要素を一意に識別できることを確認します:

  • aaname または name — 表示テキストまたはラベル。
  • tag — HTML/ネイティブコントロールタグ(例:BUTTON、INPUT、A)。
  • automationId — デスクトップアプリケーションにおける安定した識別子。
  • title — ウィンドウまたはタブのタイトル。

ステップ 3 — ワイルドカードまたは変数を使用する​

属性に静的なプレフィックス/サフィックスと動的な部分の両方が含まれる場合は、セレクターの編集 で生の XML を編集します:

  • アスタリスク(*): ゼロ文字以上に一致します。

    • 修正前: <webctrl id='order_report_20260910' tag='DIV' />
    • 修正後: <webctrl id='order_report_*' tag='DIV' />
  • 疑問符(?): 正確に 1 文字に一致します。

    • 修正前: <webctrl name='step1' tag='BUTTON' />
    • 修正後: <webctrl name='step?' tag='BUTTON' />
  • 変数 / 引数({{var}}):

    • <webctrl id='item_{{itemId}}' tag='INPUT' />

ステップ 4 — 検証とハイライト​

  1. 検証(Validate) をクリックして、更新されたセレクターが緑色に変わることを確認します。
  2. ハイライト(Highlight) をクリックして、赤いバウンディングボックスが正しい対象要素を囲んでいることを視覚的に確認します。

ターゲットプロパティ リファレンス​

akaBot の UI アクティビティは、入力 > ターゲット の下に以下のプロパティを持つ ターゲット オブジェクトを公開しています:

プロパティ型説明
SelectorInArgument<String>Strict セレクターの XML 文字列です。
FuzzySelectorInArgument<String>Fuzzy セレクターの XML 文字列です。
SearchStepsTargetSearchSteps有効な検索方式を定義するビットフラグです(StrictSelector、FuzzySelector、Image、CV、Semantic)。
TimeoutMSInArgument<Int32>要素が見つかるまでの最大待機時間(ミリ秒単位)です(例:30000)。
WaitForReadyWaitForReadyアクション実行前の待機条件です:None、Interactive、または Complete。
VisibilityCheckVisibilityCheck要素の表示確認レベルです:None、Interactive、または FullyVisible。
ElementInArgument<UIElement>既存の UIElement 変数です(例:Find Element または Element Exists からの取得値)。
SemanticDescriptorInArgument<String>セマンティックターゲット指定のための自然言語の説明です。
CvElement / CvTypeInArgument<String> / Stringコンピュータービジョンによる要素ターゲット指定のための記述子です。

関連情報​