CSS 选择器测试器

针对粘贴的 HTML 测试 CSS 选择器,查看每个匹配元素的标记和文本。使用 querySelectorAll,因此结果与浏览器完全一致。

HTML 通过 DOMParser 解析,并用 querySelectorAll 查询,与浏览器中的行为完全一致(CSS Selectors Level 4 的支持程度取决于浏览器)。粘贴的 HTML 中的脚本不会被执行。

什么是 CSS 选择器测试器?

CSS 选择器测试器会对你粘贴的 HTML 运行选择器,并列出每个匹配元素的 outer HTML 和文本内容。凡是你的浏览器支持的都能用,从属性选择器到 :not()、:is()、:has() 和 :nth-child()。

如何使用 CSS 选择器测试器

  1. 输入 CSS 选择器,例如 nav li:not(.active) > a[href^="/"]。
  2. 粘贴或编辑 HTML。
  3. 查看匹配数量以及每个匹配的高亮标记。
  4. 用“复制”按钮复制所有匹配的 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)、网页抓取或 document.querySelector 调用编写选择器。它不会应用样式,也不计算优先级,而且 :hover 等动态伪类在静态文档中永远不会匹配。

CSS 选择器测试器 的工作原理

HTML 通过 DOMParser 解析为一个分离的文档(脚本不会被执行),选择器则传给 querySelectorAll()。因此匹配结果与你的浏览器完全一致,包括它对较新的 Selectors Level 4 特性的支持程度。无效的选择器会被捕获并报告。最多显示 200 个匹配。

常见用例

  • 检查 Playwright 定位器是否恰好只匹配一个按钮。
  • 为商品价格构建爬虫选择器。
  • 学习组合器(>、+、~)和 :not() 的行为。
  • 测试你的浏览器是否支持 :has()。

常见问题

为什么我的选择器在抓取的页面中什么也匹配不到?

页面可能是用 JavaScript 生成的 HTML。请粘贴 DevTools 中渲染后的 HTML(Copy outerHTML),而不是原始源码。

支持 :has() 吗?

支持,当前的 Chrome、Edge、Safari 和 Firefox 都支持。测试器使用的是你的浏览器,所以旧版浏览器会报告它无效。

它会显示优先级吗?

不会,它只显示哪些元素匹配。

推荐的下一步

探索更多分类