html - 为什么 devtool 中的搜索结果数量急剧下降?
问题描述
我在 devtool 中执行了一个简单的搜索,但它无缘无故地急剧下降:
而且,如果我查看源并进行相同的搜索,结果的数量<link rel
只有58个,而不是184个。你知道为什么吗?
如果您需要检查,这是页面。
解决方案
Devtools 使用 CDP 命令DOM.performSearch并根据它尝试匹配这些类型的查询的实现来判断:
text
- 在 #text 节点内(如 js 中的 textContent)text
- 内部标签名称text
- 内部属性名称text
- 内部属性值<tag
- 在标签名称的开头匹配</tag
- 匹配结束标签tag>
- 在标签名称的末尾匹配<tag>
- 匹配整个标签名称"text
- 在属性值的开头匹配text"
- 在属性值的末尾匹配text
- 匹配整个属性值//a[contains(., 'foo')]
- XPath 选择器a#foo.class[attr]
- CSS 选择器
如您所见,文字文本匹配仅限于前四种类型,它不会找到attr="value"
跨越两种类型的东西。
对于这些“复杂”的查询,您必须使用 XPath 或 CSS:
//link[@rel]
//link[contains(@rel,'style')]
对于像a
使用这样的琐碎 CSS 选择器html a
,以确保它与文字文本不匹配。
推荐阅读
- azure - Azure 管道不受支持的框架在 Azure 中运行测试时出现异常 Nunit.Core 框架
- r - 读出许多图形会导致生成的图形很小并挤在一起
- excel - 两张纸之间的VBA排序功能
- graphql - 使用连接表直接或间接搜索表更有效
- python-3.x - 带有 Docker 的 Flask 应用程序中的未知 MySQL 服务器主机“backenddb”(-3)
- c++ - 构建 D3D11On12 项目
- wordpress - 使用多重元字段条件按字母顺序按元字段排序
- date - 将保存在varchar字段中的时间戳值转换为mysql中的真实日期
- javascript - Firebase 存储:发生未知错误,请检查错误负载以获取服务器响应。(存储/未知)
- android - 为什么我的 URL 没有在 WebView 组件中打开?