Auto click Login and Verify Button

自動點擊 Login 和 Verify 按鈕,直到按鈕可用為止,並等待 CAPTCHA 解決。

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği yüklemek için Tampermonkey gibi bir uzantı yüklemeniz gerekir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği indirebilmeniz için ayrıca Tampermonkey gibi bir eklenti kurmanız gerekmektedir.

Bu betiği yüklemek için bir betik yöneticisi eklentisi yüklemeniz gerekecektir.

(Zaten bir betik yöneticim var, hadi yükleyelim!)

Advertisement:

Bu stili yüklemek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için Stylus gibi bir uzantı kurmanız gerekir.

Bu stili yükleyebilmek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı kurmanız gerekir.

Bu stili yükleyebilmek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

(Zateb bir user-style yöneticim var, yükleyeyim!)

Advertisement:

// ==UserScript==
// @name         Auto click Login and Verify Button
// @namespace    AutoClickLoginAndVerify
// @version      1.2
// @description  自動點擊 Login 和 Verify 按鈕,直到按鈕可用為止,並等待 CAPTCHA 解決。
// @author       Yueei
// @match        *://*/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
    'use strict';

    // 檢查 CAPTCHA 是否存在
    function checkCaptcha() {
        const captchaSelectors = [
            "iframe[src*='recaptcha']",
            ".g-recaptcha",
            ".h-captcha",
            ".turnstile",
            "[data-sitekey]",
            "[data-sitekey='6LcdII8qAAAAAIxzAG5sJY4Vwh9O61qCCVhkUWhx']" // 特定網站的 CAPTCHA
        ];

        const captchaElements = captchaSelectors.some(selector => document.querySelector(selector));

        if (captchaElements) {
            console.log('檢測到 CAPTCHA,等待解決...');
            return true; // 若發現 CAPTCHA,返回 true 表示有 CAPTCHA
        }

        return false; // 若無 CAPTCHA,返回 false 允許繼續執行按鈕點擊
    }

    // 自動點擊指定按鈕的函數
    function clickButton(buttonText) {
        const buttons = Array.from(document.querySelectorAll("button, a"));
        const targetButton = buttons.find(btn =>
            btn.textContent.trim().toLowerCase().includes(buttonText.toLowerCase()) &&
            !btn.disabled
        );

        if (targetButton) {
            targetButton.click();
            console.log(`已成功點擊按鈕: ${targetButton.textContent.trim()}`);
        } else {
            console.log(`尚未找到包含 "${buttonText}" 的可用按鈕,等待...`);
        }
    }

    // 處理 Login 按鈕
    function handleLogin() {
        console.log('檢測並嘗試點擊 Login 按鈕...');
        clickButton('login'); // 點擊包含 "login" 的按鈕
    }

    // 處理 Verify 按鈕
    function handleVerify() {
        console.log('檢測並嘗試點擊 Verify 按鈕...');
        const buttons = Array.from(document.querySelectorAll("button, a"));
        const verifyButton = buttons.find(btn => {
            const text = btn.textContent.trim().toLowerCase();
            return (
                text.includes('verify') && // 包含 "verify"
                !btn.disabled && // 按鈕未禁用
                (
                    text === 'verify' || // 只有 "verify"
                    text.includes('verify ') || // "verify " 後有額外字元
                    text.includes(' verify') // 前面有額外字元
                )
            );
        });

        if (verifyButton) {
            verifyButton.click();
            console.log(`已成功點擊 Verify 按鈕: ${verifyButton.textContent.trim()}`);
        } else {
            console.log('尚未找到可用的 Verify 按鈕,等待...');
        }
    }

    // 主函數,定期執行檢查
    function startProcess() {
        console.log('自動點擊腳本已啟動,正在監控 Login 和 Verify 按鈕...');
        setInterval(() => {
            handleLogin(); // 優先處理 Login 按鈕
            if (!checkCaptcha()) { // 若未檢測到 CAPTCHA,處理 Verify 按鈕
                handleVerify();
            }
        }, 10000); // 每 10 秒執行一次檢查
    }

    // 啟動腳本
    startProcess();
})();