javascript – XPath no funciona para hacer clic en un botón de un script de Greasemonkey

Me gustaría abrir un enlace que contenga la palabra google. Se parece a esto:

 <input class="submit" style="background: #409999; border-radius: 10px;" value="open" onclick="Open('143615', '1', 'https://www.google.de/');" type="submit">

Probé este código Greasemonkey:

var snapResults = document.evaluate("//input[contains(@onclick, 'test')]",document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

for (var i = snapResults.snapshotLength - 1; i >= 0; i--) {
    var elm = snapResults.snapshotItem(i);
    // do stuff with elm

    if (elm) //open the window, which contains "test"
    {
        elm.singleNodeValue.click(); //there is no effect ...
        alert(i+". element opend");
    }           
    else
    {
        alert(i+". Not found.");
    }
}

No tiene efecto. Me gustaría abrir la ventana a través de Greasemonkey (¿clic en evento?)

Cuando uso alert (elm.href); dice que es “indefinido”. Pero el XPath funciona cuando lo pruebo en FirePath.

Mejor respuesta
Dices que XPath funciona, pero elm.href no está definido en el script GM. Esto sugiere que la entrada < > se agrega a través de AJAX.

Su script necesita usar AJAX-aware techniques. Algo así como:

// ==UserScript==
// @name     _Clicking "Open" buttons
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @require  https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/
waitForKeyElements ("input.submit[onclick*='open']", clickOpenBtn);

function clickOpenBtn (jNode) {
    triggerMouseEvent (jNode[0], "click");
}

function triggerMouseEvent (node, eventType) {
    var clickEvent = document.createEvent ('MouseEvents');
    clickEvent.initEvent (eventType, true, true);
    node.dispatchEvent (clickEvent);
}

Por favor indique la dirección original:javascript – XPath no funciona para hacer clic en un botón de un script de Greasemonkey - Código de registro