AutoClicker

一个自动对网页元素(按钮,链接等)进行重复点击的脚本,可以利用到春节刷票,大学选课,双十一抢购等场景中。

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

// ==UserScript==
// @name         AutoClicker
// @namespace    http://gv7.me
// @version      0.2.6
// @description  一个自动对网页元素(按钮,链接等)进行重复点击的脚本,可以利用到春节刷票,大学选课,双十一抢购等场景中。
// @author       c0ny1,JackyTsuuuy
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

// 多少毫秒点击一次
var cyce = 1000;
// 方式一:通过id定位点击元素
var id = "";
// 方式二:通过标签名tag,属性名attr,属性值value定位点击元素
var tag = "";
var attr = "";
var value = "";
// 方式三:通过xpath定位点击元素 e.g: var str_xpath = '//*[@id="su"]';
var str_xpath = '';
// 方式四:通过selector定位点击元素,e.g: var str_qs = "div .search span a";
var str_qs = "";
// 方式五:通过自定义函数定位点击元素
var isCustiom = false;


/*
	定位点击对象的辅助函数
*/
function getTargetByCustom(){
    /*若启用方式五,请在该函数体内编写自定义定位点击元素的代码*/
    var target;
	return target;
}

function getTargetById(t_id){
	var target = document.getElementById(t_id);
    return target;
}


function getTargetByTAV(t_tag,t_attr,t_value){
	var target = document.getElementsByTagName(t_tag);
	for(var i=0;i <target.length;i++){
		if(target[i].getAttribute(t_attr) == t_value){
			return target[i];
		}
	}
}

function getTargetByXpath(str_xpath) {
    var xresult = document.evaluate(str_xpath, document, null, XPathResult.ANY_TYPE, null);
    var xnodes = [];
    var xres;
    while (xres = xresult.iterateNext()) {
        xnodes.push(xres);
    }
    return xnodes;
}


function getTargetByQS(str_qs){
    var target = document.querySelector(str_qs);
    return target;
}


function trim(str){
    str = str.replace(/(^\s*)|(\s*$)/g, "");
    return str;
}

/*
	运行流程
*/

var btn;

if(isCustiom === true){
	btn = getTargetByCustom();
}

if(trim(id) !== "" && (btn === null | typeof(btn) !== 'object')){
	btn = getTargetById(id);
}

if(trim(tag) !== "" && trim(attr) !== "" && value !== "" && (btn === null | typeof(btn) !== 'object')){
	btn = getTargetByTAV(tag,attr,value);
}

if(trim(str_xpath) !== "" && (btn === null | typeof(btn) !== 'object')){
	btn = getTargetByXpath(str_xpath)[0];
}

if(trim(str_qs) !== "" && (btn === null | typeof(btn) !== 'object')){
    btn = getTargetByQS(str_qs);
}

setInterval(function() {
		if (btn !== null && typeof(btn) === 'object') {
            console.info("[+] AutoClicker click object: " + btn.innerHTML);
			btn.click();
		}else{
			console.warn('[-] Autoclicker does not find the click object!');
		}
	},cyce);
})();