使用 Google Chrome 开发者工具审查和验证 XPath/CSS 选择器

发表信息: by Creative Commons Licence (最后更新于: )

最近更新于 - 2017年5月30日

Google Chrome 浏览器自带了叫做 "Chrome DevTools" 前端调试工具。 它包含一系列方便的调试工具,其中包括了在不添加额外插件的前提下,直接审查和验证 XPath/CSS 选择器的功能。

这可以通过如下两种方式完成:

  • 使用 Elements 面板内的搜索功能来在 DOM 中审查验证并高亮 XPath/CSS 选择器。
  • Console 面板中执行命令 $x("some_xpath")$$("css-selectors")来审查和验证。

通过 Elements 面板

  1. 键入 F12 来开启 Chrome DevTools。
  2. 默认设置下 Elements 面板将会自动打开。
  3. 在当前面板下键入 Ctrl + F 来启用搜索模式。
  4. 输入 XPath 或 CSS selectors 选择器来进行审查和验证。
  5. 如果有任何元素被成功匹配,它们将会在 DOM 中以黄色高亮。
    注意,如果任何字符串也被该 XPath 或 CSS selectors 选择器成功匹配,它们也将被认为是有效的搜索结果。 比如,CSS 选择器 header 将会匹配 DOM 中(包含 CSS 和脚本)含有 header 的任何关键字,而不仅仅是页面的元素。

使用 'Elements' 面板的搜索功能来审查和验证 XPath/CSS 选择器

通过 Console 面板

  1. 键入 F12 来开启 Chrome DevTools。
  2. 切换至 Console 面板。
  3. 输入 XPath 选择器,如 $x(".//header") 来进行审查和验证。
  4. 输入 CSS 选择器,如 $$("header") 来进行审查和验证。
  5. 检测命令运行结果
    • 如果有页面元素被成功匹配,它们将会被在一个列表中返回。否则,将返回一个空列表 []

    $x(".//article")
    [<article class="unit-article layout-post">…</article>]

    $x(".//not-a-tag")
    [ ]

    • 如果 XPath 或者 CSS selector 不合法,一个异常将被抛出并以红字显示。例如:

    $x(".//header/")
    SyntaxError: Failed to execute 'evaluate' on 'Document': The string './/header/' is not a valid XPath expression.

    $$("header[id=]")
    SyntaxError: Failed to execute 'querySelectorAll' on 'Document': 'header[id=]' is not a valid selector.

Evaluate XPath/CSS selectors using 'Console' panel

优点和缺点

一个方法的优点往往是另一个的缺点,或反之。

通过 Elements 面板 通过 Console 面板
优点 缺点
简单,快速,易达 需要切换至其面板
结果直接在 DOM 内高亮显示 结果现在在一个列表里
需要点击元素,并右键选择返回在 'Element' 面板显示
显示了搜索结果数量 只显示搜索结果列表
(最新版的开发者工具已能显示列表内元素数量)
缺点 优点
匹配的字符串也会被显示 只会匹配页面元素
只能审查,不能验证
不会对不正确不合法的选择器报错
对不合法的选择器抛出异常
- 可以在 Console 面板内直接使用其他功能