我正在尝试简化我的生活并通过查询删除chrome历史记录。我有几百个要删除的复选框,手动执行它真的很痛苦。
所以我打开chrome://history/?q=somequery
,看到很多复选框。我写道:
document.querySelectorAll('[aria-checked]')
并且它什么都不返回。好的,我写道:
document.querySelectorAll('button')
它什么也没有返回!好吧,然后我只需点击Edit HTML
按钮并手动添加一些元素然后尝试通过id获取它:
document.getElementById('foooobar')
你知道吗?什么都没有。
我不明白它是否正在使用某种框架或阻止我访问这些元素的东西,但我检查了没有i- / frame,所以我只是困惑为什么它不起作用预期
我在询问之前用Google搜索并找到了几个答案,人们只想在创建元素之前获取元素,但现在页面已完全加载且元素仍然不可用...
答案 0 :(得分:3)
你需要使用:: 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'))
});