CSSセレクターテスター
貼り付けたHTMLに対してCSSセレクターをテストし、一致するすべての要素をマークアップとテキストとともに表示します。querySelectorAllを使うため、結果はブラウザと完全に一致します。
CSSセレクターテスターとは?
CSSセレクターテスターは、貼り付けたHTMLに対してセレクターを実行し、一致するすべての要素をouter HTMLとテキスト内容とともに一覧表示します。属性セレクターから :not()、:is()、:has()、:nth-child() まで、ブラウザが対応するすべてに対応しています。
CSSセレクターテスターの使い方
nav li:not(.active) > a[href^="/"]のようなCSSセレクターを入力します。- HTMLを貼り付けるか編集します。
- 一致数と、各一致のハイライトされたマークアップを確認します。
- Copyボタンで、一致したHTMLをすべてコピーします。
例
nav li:not(.active) > a[href^="/"] on the sample HTML
1 match: <a href="/blog" data-track="nav">Blog</a>
a[href] はサンプルの4つのリンクすべてに一致します。
CSSセレクターテスターを使うべき場面
CSSルール、テスト自動化(Playwright、Cypress)、Webスクレイピング、document.querySelector の呼び出しに使うセレクターを書くときに使います。スタイルの適用や詳細度の計算は行わず、:hoverのような動的な擬似クラスは、静的なドキュメントでは一致しません。
CSSセレクターテスターの仕組み
HTMLはDOMParserで切り離されたドキュメントに解析され(スクリプトは実行されません)、セレクターは querySelectorAll() に渡されます。そのため、一致の判定は、新しいSelectors Level 4機能への対応状況も含めて、ブラウザの動作そのままです。無効なセレクターは捕捉されて報告されます。表示されるのは最大200件の一致です。
一般的な使用例
- Playwrightのロケーターが、ちょうど1つのボタンに一致することを確認する。
- 商品価格を取得するスクレイパー用のセレクターを作る。
- コンビネーター(>、+、~)と:not()の挙動を学ぶ。
- ブラウザが:has()に対応しているかテストする。
よくある質問
スクレイピングしたページでセレクターが何にも一致しないのはなぜですか。
ページがJavaScriptでHTMLを組み立てている可能性があります。元のソースではなく、DevToolsでレンダリング後のHTML(Copy outerHTML)を貼り付けてください。
:has()には対応していますか。
はい。現行のChrome、Edge、Safari、Firefoxで対応しています。テスターはお使いのブラウザを使うため、古いブラウザでは無効と報告されます。
詳細度は表示されますか。
いいえ。どの要素に一致するかだけを表示します。