Javascript getElementById和querySelectorAll don';我不工作chrome://history

Javascript getElementById和querySelectorAll don';我不工作chrome://history,javascript,html,google-chrome,Javascript,Html,Google Chrome,我试图简化我的生活,通过查询删除chrome历史记录。我有几百个复选框要删除,手动删除真的很痛苦 所以我打开chrome://history/?q=somequery,并看到许多复选框。我写道: document.querySelectorAll('[aria-checked]') 它什么也不返回。好的,我写: document.querySelectorAll('button') 它什么也不回!好的,然后我只需点击编辑HTML按钮,手动添加一些元素,然后尝试按id获取它: 你知道吗?没什

我试图简化我的生活,通过查询删除chrome历史记录。我有几百个复选框要删除,手动删除真的很痛苦

所以我打开
chrome://history/?q=somequery
,并看到许多复选框。我写道:

document.querySelectorAll('[aria-checked]')
它什么也不返回。好的,我写:

document.querySelectorAll('button')
它什么也不回!好的,然后我只需点击
编辑HTML
按钮,手动添加一些元素,然后尝试按id获取它:

你知道吗?没什么

我不知道它是否使用了某种框架或阻止我访问这些元素的东西,但我检查了没有I-/frame,所以我只是不明白为什么它不能按预期工作


我在询问之前搜索了一下,找到了几个答案,人们只想在创建元素之前获取元素,但现在页面已完全加载,元素仍然不可用……

您需要使用::shadow伪选择器进入shadow dom。请尝试使用此代码段选择所有按钮

[].slice.call(document
            .querySelector('history-app::shadow iron-pages history-list')
            .querySelector('history-list::shadow iron-list')
            .querySelectorAll('iron-list history-item'))
        .forEach(function(el) {
            console.log(el.querySelector('history-item::shadow button'))
        });

这是一个聚合物应用程序。Polymer使用web组件来创建阴影dom。比基本domI更复杂,听说shadowdom仍然是一种实验技术。我没想到他们已经使用了它。一两年前,它更具实验性,现在它有很多用途,浏览器甚至在内部将其用于元素。如果您在各自的检查器中启用它,您可以看到它。IIUC::shadow(和/deep/)选择器从Chrome 45开始就被弃用,并且似乎在今天(Chrome 84)不起作用
[].slice.call(document
            .querySelector('history-app::shadow iron-pages history-list')
            .querySelector('history-list::shadow iron-list')
            .querySelectorAll('iron-list history-item'))
        .forEach(function(el) {
            console.log(el.querySelector('history-item::shadow button'))
        });