Greasy Fork is available in English.

自动点击

尝试自动点击页面上指定的元素

// ==UserScript==
// @name          自动点击
// @description   尝试自动点击页面上指定的元素
// @version       1.2
// @match         *://*/link?target=*
// @namespace https://greasyfork.org/users/12375
// ==/UserScript==

(function() {
    'use strict';

    // 配置区(用户需修改部分)==============================
    const CONFIG = {
        // 要点击的元素选择器(支持标准CSS选择器)
        SELECTORS: [
            '[class="link-go"]',   // 属性选择器
            '[class="btn btn-next"]',    // 类选择器
            '[id="apesar-loading"]',
            '[class="btn"]',// ID选择器
            '[class="button link-instanted"]',
            '[class="btn"]',
            '[]',
            '[]',
            '[]',
            '[]',
            '[]',
        ],

        // 检测间隔(毫秒)
        INTERVAL: 1000,

        // 最大重试次数(0为无限)
        MAX_RETRY: 0
    };

    // 核心逻辑==========================================
    let retryCount = 0;
    const clickedElements = new Set();

    function simpleClick() {
        CONFIG.SELECTORS.forEach(selector => {
            const elements = document.querySelectorAll(selector);

            elements.forEach(element => {
                if (!clickedElements.has(element)) {
                    try {
                        element.click();
                        console.log('[AutoClick] 已点击:', element);
                        clickedElements.add(element);
                    } catch (e) {
                        console.warn('[AutoClick] 点击失败:', e);
                    }
                }
            });
        });

        if (CONFIG.MAX_RETRY > 0) {
            if (++retryCount >= CONFIG.MAX_RETRY) {
                console.log('[AutoClick] 达到最大重试次数');
                clearInterval(timer);
            }
        }
    }

    // 启动定时器
    const timer = setInterval(simpleClick, CONFIG.INTERVAL);

    // 页面更新后重新检测(简单版)
    document.addEventListener('DOMContentLoaded', simpleClick);
    window.addEventListener('load', simpleClick);
})();