# instinct: "自動学習 — `button[aria-label*=\"登録\"]`が2要素に解決されstrict mode violationが発生した。また`button:has-text"

Playwrightのロケーターが複数要素に解決される場合は、より具体的なセレクタ(hasText, nth, filter等)を使用する前に、意図した要素が一意に特定できるセレクタを設計する

**Why:** `button[aria-label*="登録"]`が2要素に解決されstrict mode violationが発生した。また`button:has-text("登録解除")`も同様に複数解決した。YouTubeのUIは動的に変化するため、ロケーターの一意性を事前に検証すべきだった。

**How to apply:** testing カテゴリの作業時に適用する。

**手段の使い分け(2026-06-06 明文化):** 本instinct(snapshot+一意セレクタ)は**単発・複雑なUI操作**向け。**大量・反復のブラウザ操作**(一括購読/フォロー等N回反復)では snapshot往復のトークン爆食いを避け `browser_evaluate`(JS)で判定・クリックする → `instinct_2026-06-05_4`(#29)。判定軸=操作回数。両者は競合でなく適用場面の違い。

_Auto-learned by session_learner.py on 2026-05-26 / 2026-06-06 #29との使い分け明文化_

---
(migrated from local memory/instinct_2026-05-26_3_Playwrightのロケーターが複数要素に解決される場合は、より具体的なセレク.md)