Skip to main content

概要

セレクタは、どの DOM 要素を操作するかを指定します。複数のフィールドをフォールバック戦略として使用し、優先順位に従って順番にマッチを試みます。

セレクタフィールド

解決パイプライン

セレクタは6段階のパイプラインで解決されます:
1

決定論的解決

優先順位順にセレクタフィールドを試行(id → ariaLabel → … → name)。AI 不要。
2

AI セレクタ解決

決定論的解決が失敗した場合、AI が現在のページスナップショットを分析して対象要素を特定。
3

スマートリトライ(3回)

タイムアウトを増やしながらリトライし、試行間で DOM の変化を待機。
4

スクロール回復

画面外の要素を見つけるためにページをスクロール。
5

Agent Fallback

AI エージェントが代替パスを探索して対象要素に到達。Pro+ プランが必要。
6

Vision Fallback

スクリーンショットを撮影し、Vision AI で要素を視覚的に特定。Pro+ プランが必要。

この例では、エグゼキュータは以下の順序で試行します:
  1. まず #submit-btn を試行
  2. id が見つからない場合 [aria-label="Submit form"] にフォールバック
  3. aria-label が失敗した場合 innerText のマッチにフォールバック
  4. roletagName は全体を通じて追加フィルタとして使用

rect(位置フォールバック)

最終手段の決定論的戦略です。座標はビューポート相対です。
位置ベースのセレクタはレイアウト変更で壊れやすいです。可能な限りセマンティックセレクタ(idariaLabeldataTestId)を使用してください。

dataAttributes

カスタム data-* 属性で要素をマッチ:
これは <div data-row-id="42" data-status="active"> にマッチします。

ベストプラクティス

  1. 安定した識別子を優先iddataTestIdariaLabel は CSS セレクタや XPath よりも UI の再設計に強い。
  2. rect は避ける — 位置セレクタはレイアウト変更で壊れる。セマンティックセレクタがない場合のみ使用。
  3. innerText は短く — 長いテキストマッチは壊れやすい。フィールドは200文字に制限。
  4. セレクタキャッシュを有効化 — 繰り返し実行する場合、--enable-selector-cache で成功した解決結果を永続化。