使用 Google Chrome 开发者工具审查和验证 XPath/CSS 选择器
最近更新于 - 2017年5月30日
Google Chrome 浏览器自带了叫做 "Chrome DevTools" 前端调试工具。 它包含一系列方便的调试工具,其中包括了在不添加额外插件的前提下,直接审查和验证 XPath/CSS 选择器的功能。
这可以通过如下两种方式完成:
- 使用
Elements
面板内的搜索功能来在 DOM 中审查验证并高亮 XPath/CSS 选择器。 - 在
Console
面板中执行命令$x("some_xpath")
或$$("css-selectors")
来审查和验证。
通过 Elements 面板
- 键入
F12
来开启 Chrome DevTools。 - 默认设置下
Elements
面板将会自动打开。 - 在当前面板下键入
Ctrl
+F
来启用搜索模式。 - 输入 XPath 或 CSS selectors 选择器来进行审查和验证。
- 如果有任何元素被成功匹配,它们将会在 DOM 中以黄色高亮。
注意,如果任何字符串也被该 XPath 或 CSS selectors 选择器成功匹配,它们也将被认为是有效的搜索结果。 比如,CSS 选择器header
将会匹配 DOM 中(包含 CSS 和脚本)含有header
的任何关键字,而不仅仅是页面的元素。
通过 Console 面板
- 键入
F12
来开启 Chrome DevTools。 - 切换至
Console
面板。 - 输入 XPath 选择器,如
$x(".//header")
来进行审查和验证。 - 输入 CSS 选择器,如
$$("header")
来进行审查和验证。 - 检测命令运行结果
- 如果有页面元素被成功匹配,它们将会被在一个列表中返回。否则,将返回一个空列表
[]
。
$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. - 如果有页面元素被成功匹配,它们将会被在一个列表中返回。否则,将返回一个空列表
优点和缺点
一个方法的优点往往是另一个的缺点,或反之。
通过 Elements 面板 | 通过 Console 面板 |
---|---|
优点 | 缺点 |
简单,快速,易达 | 需要切换至其面板 |
结果直接在 DOM 内高亮显示 | 结果现在在一个列表里 需要点击元素,并右键选择返回在 'Element' 面板显示 |
显示了搜索结果数量 | (最新版的开发者工具已能显示列表内元素数量) |
缺点 | 优点 |
匹配的字符串也会被显示 | 只会匹配页面元素 |
只能审查,不能验证 不会对不正确不合法的选择器报错 | 对不合法的选择器抛出异常 |
- | 可以在 Console 面板内直接使用其他功能 |