GM_xmlhttpRequestで取得したresponseTextをinnerHTMLで流し込んでDOMが取れる。について

HTMLをDOMパースしてdocument.getElementByIdとか使いたくて探すと、

DOMParserかXMLSerializerを使うか、適当にcreateElementしてinnerHTMLで流し込め。

と見つかる。検証してみた。

検証コード

function log(n){ return console.log(n) };
var div = document.createElement('div');
div.innerHTML = '<input id="all" type="radio" checked="" value="" name="lr">';

try{
    log(div.getElementById('all'));
}
catch (e) {
    log(e);
}
try{
    log(div.getElementsByName('lr'));
}
catch (e) {
    log(e);
}
try{
    log(div.getElementsByTagName('input'));
}
catch (e) {
    log(e);
}
try{
    log(div.evaluate("//input[@id]", div, null, 7, null));
}
catch (e) {
    log(e);
}

結果

getElementsByTagNameしか動いてない。常識?element.getElementsByTagNameだけが有効で、document.getElementById、document.getElementsByTagName、document.getElementsByName、document.evaluateはダメとか?検証方法まちがってんのかな。DOMのdocumentオブジェクトについての認識もまちがってる?

AutoPagerizeについてたcreateHTMLDocumentByString関数にresponseTextを渡してDOM取れるじゃんてやろうとしてたらなんかうまくいかなかった。途中だけどで報告。