Userscript to click button

greasemonkey, jquery, userscripts

Solution

I wonder if the code below is what you want.

document.querySelector('#buy-now').click()

Demo

It seems some scripts have not been loaded on the page you mentioned at the time of DOMContentLoaded. Adding a delay solved the problem for me, that is,

// ==UserScript==
// @name         script
// @namespace    sc
// @include      http://www.aliexpress.com/item/Free-shipping-100-Genuine-Original-P1000-Mobile-phone-data-cable-for-Samsung-P1000-P6800-P7500-USB/1477114758.html
// @version      1
// @description  http://stackoverflow.com/questions/22633509/userscript-to-click-button/22684724
// @grant        none
// ==/UserScript==
setTimeout(function() {
    document.querySelector('#buy-now').click()
}, 1000)

Problem

I would like to click a buy now button using greasemonkey. ``` // ==UserScript== // @name script // @namespace sc // @include * // @version 1 // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js // @require https://gist.github.com/raw/2625891/waitForKeyElements.js // @grant GM_addStyle // ==/UserScript== waitForKeyElements ("#buy-now", triggerMostButtons); function triggerMostButtons (jNode) { triggerMouseEvent (jNode[0], "mouseover"); triggerMouseEvent (jNode[0], "mousedown"); triggerMouseEvent (jNode[0], "click"); triggerMouseEvent (jNode[0], "mouseup"); } function triggerMouseEvent (node, eventType) { var clickEvent = document.createEvent('MouseEvents'); clickEvent.initEvent (eventType, true, true); node.dispatchEvent (clickEvent); } ``` Html of the buttons: ``` <div class="buy-now"><a data-spm-anchor-id="0.0.0.0" data-widget-cid="widget-14" tabindex="-1" id="buy-now" class="buy-now-btn" href="#">Buy Now</a><a id="add-to-cart" class="add-to-cart-btn" href="#">Add to Cart</a></div> ``` I have tried other codes like ``` var TargetLink = $("a:contains('Ik neem er een!')") if (TargetLink.length) window.location.assign (TargetLink[0].href); ``` and ``` waitForKeyElements ("a.class:contains('buy-now-btn')", clickOnFollowButton); function clickOnFollowButton (jNode) { var clickEvent = document.createEvent ('MouseEvents'); clickEvent.initEvent ('click', true, true); jNode[0].dispatchEvent (clickEvent); } ``` Could someone give me an explenation what to put in the waitForKeyElements as first parameter for clicking the button?

Original source