'observe' em 'MutationObserver': o parâmetro 1 não é do tipo 'Node'

Estou criando uma extensão do Chrome e tentando incluir um texto pequeno ao lado do botão ENVIAR da caixa de composição do gMail.

Estou usando um MutationObserver para saber quando a janela da caixa de composição é exibida. Estou fazendo isso observando um elemento com classeno desde que o elemento da caixa de composição seja criado como filho desse elemento (classeno)

Quando o usuário clica no botão de composição e a janela da caixa de composição aparece, coloco um elemento ao lado do botão ENVIAR usando o.after() método. O nome da classe do botão ENVIAR é.gU.Up.

Estes são os nomes reais das classes do gMail e muito estranhos também.

Abaixo está o código que estou usando:

var composeObserver = new MutationObserver(function(mutations){ 
    mutations.forEach(function(mutation){
        mutation.addedNodes.forEach(function(node){
            $(".gU.Up").after("<td> <div> Hi </div> </td>");
        });
    });
});

var composeBox = document.querySelectorAll(".no")[2];
var config = {childList: true};
composeObserver.observe(composeBox,config);

O problema é que eu constantemente recebo o seguinte erro:

Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'

Alguém pode ajudar? Eu tentei algumas coisas e também procurei outras respostas aqui, mas ainda não consigo me livrar desse erro.

Aqui está o meumanifest.json Arquivo:

{
    "manifest_version": 2,
    "name": "Gmail Extension",
    "version": "1.0",

    "browser_action": {
        "default_icon": "icon19.png",   
        "default_title": "Sales Analytics Sellulose"    
    },

    "background": {
        "scripts": ["eventPage.js"],
        "persistent": false
    },

    "content_scripts": [
    {
        "matches": ["https://mail.google.com/*"],
        "js": ["jquery-3.1.1.js", "insQ.min.js", "gmail_cs.js"]
    }
],

    "web_accessible_resources":[
        "compose_icon.png",
        "sellulosebar_icon.png" 
    ]
}

P.S. Eu já tentei a biblioteca inserttionquery, mas ela tem algumas falhas. Não me deixa ser específico quanto às mudanças no elemento específico. Ainda estou para tentar a biblioteca de resumo de mutações, mas como ele usa o MutationObserver, achei que o problema persistiria.

Adicionado a partir do comentário:
É verdade que o seletor não está me dando um nó. Eu verifiquei no console, está dando um objeto. Também verifiquei no console e ele está selecionando o elemento apropriado que quero observar.

No entanto, quando adicionoconsole.log para o elemento selecionado, é exibido como indefinido. O que significa que você provavelmente está certo sobre a execução de código antes da existência de nós. Você pode me dizer como garantir que o atraso aconteça? 'setTimeout' funcionará? Como isso funciona no caso de MutationObserver?

questionAnswers(4)

yourAnswerToTheQuestion