Ну можно обойти весь ДОМ и перебирать элементы
Как то так
const helems = [] // массив заголовков
const findH = (par) => {
if (par.tagName.match(/^H[2-6]$/)) helems.push(par)
for (let i = 0; i<par.childElementCount; i++)
findH(par.children[i])
}
findH (document.body)