SOURCE

(async function () {
    // 等待1秒,确保页面元素已经渲染
    await new Promise((resolve) => setTimeout(resolve, 1000));
    let allbutton = document.querySelectorAll('button');
    for (let i = 0; i < 10; i++) {
        if (allbutton && allbutton.length > 0) {
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        allbutton = document.querySelectorAll('button');
    }
    const btnLength = allbutton ? allbutton.length : 0;
    let text = '支付宝h5支付: 确认付款页面 ' + btnLength + '个按钮';
    //! 通知主进程
    window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
    if (allbutton && allbutton.length > 0) {
        const filbtn = Array.from(allbutton).filter(item => item.textContent.includes('确认付款'));
        const filbtnLength = filbtn ? filbtn.length : 0;
        let text = '支付宝h5支付: 页面寻找确认付款 ' + filbtnLength + '个确认付款按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        if (filbtn && filbtn.length > 0) {
            filbtn[0].click();
            await new Promise((resolve) => setTimeout(resolve, 1000));
            let text = '支付宝h5支付: 确认付款页面 点击确认付款 ' + filbtn[0].textContent;
            //! 通知主进程
            window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        }
    }
    let passwordStr = '${info.paymentPassword}';
    //* 是长密码,支付密码元素不同
    if (passwordStr.length <= 6) {
        const text = '支付宝h5支付: 短密码支付 密码长度 ' + passwordStr.length;
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        //* 检测是否第一次支付
        await payAccount();
        //* 输入密码
        await payPassWord();
        //* 点击完成
        await payComplete();
    } else {
        const text = '支付宝h5支付: 长密码支付 密码长度 ' + passwordStr.length;
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        //* 检测是否第一次支付
        await payAccountLong();
        //* 输入密码
        await payPassWordLong();
        //* 点击完成
        await payCompleteLong();
    }
})();

//* 检测并自动输入账号
async function payAccount() {
    // 等待1秒,确保页面元素已经渲染
    await new Promise((resolve) => setTimeout(resolve, 1000));
    let accEle = document.querySelectorAll(".adm-input-element");
    for (let i = 0; i < 10; i++) {
        if (accEle && accEle.length > 0) {
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        accEle = document.querySelectorAll(".adm-input-element");
    }
    //* 第一次支付宝支付
    if (accEle && accEle.length > 0) {
        let text = '支付宝h5支付: 找到账号输入框,是第一次支付宝支付';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        accEle[0].focus();

        let account = '${info.paymentAccount}';
        //* 自动输入账号
        let accArray = account.split('');
        accArray.forEach(item => {
            document.execCommand("insertText", false, item);
        })
        text = '支付宝h5支付: 输入账号页面 账号输入完成 ' + account;
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
    } else {
        const text = '支付宝h5支付: 未找到账号输入框,非第一次支付宝支付';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        return;
    }

    // 等待1秒,确保页面元素已经渲染
    await new Promise((resolve) => setTimeout(resolve, 1000));
    let nextEle = Array.from(document.querySelectorAll("[class*='adm-button-shape-default']"));
    let nextEleItem = '';
    for (let i = 0; i < 10; i++) {
        if (nextEle.find(item => item.textContent.includes("下一步"))) {
            nextEleItem = nextEle.find(item => item.textContent.includes("下一步"))
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        nextEle = Array.from(document.querySelectorAll("[class*='adm-button-shape-default']"));
    }
    if (nextEleItem) {
        const text = '支付宝h5支付: 输入完支付密码,点击下一步按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        nextEleItem.click()
    } else {
        const text = '支付宝h5支付: 输入完支付密码异常,未找到下一步按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        return;
    }

    // 等待1秒,确保页面元素已经渲染
    await new Promise((resolve) => setTimeout(resolve, 1000));
    let pwdloginEle = document.querySelector("[class*='toAccountLoginWrap___2ir3r']");
    for (let i = 0; i < 10; i++) {
        if (pwdloginEle) {
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        pwdloginEle = document.querySelector("[class*='toAccountLoginWrap___2ir3r']");
    }
    if (pwdloginEle) {
        const text = '支付宝h5支付: 点击支付密码登录按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        pwdloginEle.click()
    } else {
        const text = '支付宝h5支付: 页面异常,未找到支付密码登录按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        return;
    }

    // 等待1秒,确保页面元素已经渲染
    await new Promise((resolve) => setTimeout(resolve, 2000));
    // 查找支付宝输入密码元素
    let pwdEle = document.querySelectorAll(".my-passcode-input-native-input");
    for (let i = 0; i < 10; i++) {
        if (pwdEle && pwdEle.length > 0) {
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        pwdEle = document.querySelectorAll(".my-passcode-input-native-input");
    }
    if (pwdEle && pwdEle.length > 0) {
        const text = '支付宝h5支付: 找到支付密码输入框';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        pwdEle[0].focus();
    } else {
        const text = '支付宝h5支付: 页面异常,未找到支付密码输入框';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        return;
    }
    let password = '${info.paymentPassword}';
    //* 自动输入密码
    let pasArray = password.split('');
    pasArray.forEach(pas => {
        document.execCommand("insertText", false, pas);
    })
    window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: '支付宝h5支付: 输入密码页面 密码输入完成' });

    // 等待1秒,确保页面元素已经渲染
    await new Promise((resolve) => setTimeout(resolve, 1000));
    let pwdloginNextEle = Array.from(document.querySelectorAll("[class*='adm-button-shape-default']"));
    let pwdloginNextEleItem = '';
    for (let i = 0; i < 10; i++) {
        if (pwdloginNextEle.find(item => item.textContent.includes("下一步"))) {
            pwdloginNextEleItem = pwdloginNextEle.find(item => item.textContent.includes("下一步"));
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        pwdloginNextEle = Array.from(document.querySelectorAll("[class*='adm-button-shape-default']"));
    }
    if (pwdloginNextEleItem) {
        const text = '支付宝h5支付: 输入完支付密码,点击下一步按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        pwdloginNextEleItem.click()
    } else {
        const text = '支付宝h5支付: 页面异常,输入完支付密码,未找到下一步按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        return;
    }

    // 等待1秒,确保页面元素已经渲染
    await new Promise((resolve) => setTimeout(resolve, 1000));
    let confirmEle = document.querySelector("[class*='cashierPreConfirm__btn']");
    for (let i = 0; i < 10; i++) {
        if (confirmEle) {
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        confirmEle = document.querySelector("[class*='cashierPreConfirm__btn']");
    }
    if (confirmEle) {
        const text = '支付宝h5支付: 点击确认付款按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        confirmEle.click()
    } else {
        const text = '支付宝h5支付: 页面异常,未找到确认付款按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        return;
    }
}

//* 检测并自动输入密码
async function payPassWord() {
    // 等待1秒,确保页面元素已经渲染
    await new Promise((resolve) => setTimeout(resolve, 1000));
    // 查找支付宝输入密码元素
    let pwdEle = document.querySelectorAll(".my-passcode-input-cell");
    for (let i = 0; i < 10; i++) {
        if (pwdEle && pwdEle.length > 0) {
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        pwdEle = document.querySelectorAll(".my-passcode-input-cell");
    }
    //* 正常支付宝
    if (pwdEle && pwdEle.length > 0) {
        const text = '支付宝h5支付: 找到密码输入框';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        pwdEle[0].focus();
    } else {
        const text = '支付宝h5支付: 页面异常,未找到密码输入框';
        //! 通知主进程,采购失败
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        return;
    }
    let password = '${info.paymentPassword}';
    //* 自动输入密码
    let pasArray = password.split('');
    pasArray.forEach(pas => {
        document.execCommand("insertText", false, pas);
    })
    window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: '支付宝h5支付: 输入密码页面 密码输入完成' });
}

//* 支付宝支付完成页
async function payComplete() {
    await new Promise((resolve) => setTimeout(resolve, 1000));
    let completeEle = Array.from(document.querySelectorAll("[class*='adm-button-shape-default']"));
    let completeEleItem = ''
    for (let i = 0; i < 10; i++) {
        if (completeEle.find(item => item.textContent.includes("完成"))) {
            completeEleItem = completeEle.find(item => item.textContent.includes("完成"))
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        completeEle = Array.from(document.querySelectorAll("[class*='adm-button-shape-default']"));
    }
    if (completeEleItem) {
        const text = '支付宝h5支付: 完成页面,点击完成按钮';
        //! 通知主进程
        window.electronAPI.send('autoTake-window', { type: 'autoLogs', msg: text, data: { window: '${window}', type: '${type}', queue: '${queueStr}', text } });
        completeEleItem.click();
    } else {
        const text = '支付宝h5支付: 完成页面异常,未找到完成按钮';
        //! 通知主进程
        window.electronAPI.send('autoTake-window', { type: 'autoLogs', msg: text, data: { window: '${window}', type: '${type}', queue: '${queueStr}', text } });
    }
}

//* 检测并自动输入账号(长密码)
async function payAccountLong() {
    // 等待1秒,确保页面元素已经渲染
    await new Promise((resolve) => setTimeout(resolve, 1000));
    let accEle = document.querySelectorAll(".adm-input-element");
    for (let i = 0; i < 10; i++) {
        if (accEle && accEle.length > 0) {
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        accEle = document.querySelectorAll(".adm-input-element");
    }
    //* 第一次支付宝支付
    if (accEle && accEle.length > 0) {
        let text = '支付宝h5支付: 找到账号输入框,是第一次支付宝支付';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        accEle[0].focus();

        let account = '${info.paymentAccount}';
        //* 自动输入账号
        let accArray = account.split('');
        accArray.forEach(item => {
            document.execCommand("insertText", false, item);
        })
        text = '支付宝h5支付: 输入账号页面 账号输入完成 ' + account;
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
    } else {
        const text = '支付宝h5支付: 未找到账号输入框,非第一次支付宝支付';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        return;
    }

    // 等待1秒,确保页面元素已经渲染
    await new Promise((resolve) => setTimeout(resolve, 1000));
    let pwdloginNextEle = Array.from(document.querySelectorAll("[class*='adm-button-shape-default']"));
    let pwdloginNextEleItem = '';
    for (let i = 0; i < 10; i++) {
        if (pwdloginNextEle.find(item => item.textContent.includes("下一步"))) {
            pwdloginNextEleItem = pwdloginNextEle.find(item => item.textContent.includes("下一步"))
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        pwdloginNextEle = Array.from(document.querySelectorAll("[class*='adm-button-shape-default']"));
    }
    if (pwdloginNextEleItem) {
        const text = '支付宝h5支付: 输入完账号点击下一步按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        pwdloginNextEleItem.click()
    } else {
        const text = '支付宝h5支付: 页面异常,输入完账号未找到下一步按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        return;
    }

    // // 等待1秒,确保页面元素已经渲染
    // await new Promise((resolve) => setTimeout(resolve, 1000));
    // // 查找支付宝输入密码元素
    // const pwdEle = document.querySelectorAll("[class*='adm-input-element']");
    // for (let i = 0; i < 10; i++) {
    //     if (pwdEle && pwdEle.length > 0) {
    //         break;
    //     }
    //     await new Promise((resolve) => setTimeout(resolve, 200));
    //     pwdEle = document.querySelectorAll("[class*='adm-input-element']");
    // }
    // if (pwdEle && pwdEle.length > 1) {
    //     const text = '支付宝h5支付: 找到支付密码输入框';
    //     //! 通知主进程
    //     window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
    //     pwdEle[1].focus();
    // } else {
    //     const text = '支付宝h5支付: 未找到支付密码输入框';
    //     //! 通知主进程
    //     window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
    //     return;
    // }
    // let password = '${info.paymentPassword}';
    // //* 自动输入密码
    // let pasArray = password.split('');
    // pasArray.forEach(pas => {
    //     document.execCommand("insertText", false, pas);
    // })
    // pwdEle[1].value = password;
    // window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: '支付宝h5支付: 输入密码页面 密码输入完成' });

    // // 等待1秒,确保页面元素已经渲染
    // await new Promise((resolve) => setTimeout(resolve, 1000));
    // let pwdinputNextEle = Array.from(document.querySelectorAll("[class*='adm-button-shape-default']"));
    // let pwdinputNextEleItem = ''
    // for (let i = 0; i < 10; i++) {
    //     if (pwdinputNextEle.find(item => item.textContent.includes("下一步"))) {
    //         pwdinputNextEleItem = pwdinputNextEle.find(item => item.textContent.includes("下一步"));
    //         break;
    //     }
    //     await new Promise((resolve) => setTimeout(resolve, 200));
    //     pwdinputNextEle = Array.from(document.querySelectorAll("[class*='adm-button-shape-default']"));
    // }
    // if (pwdinputNextEleItem) {
    //     const text = '支付宝h5支付: 输入完支付密码点击下一步按钮';
    //     //! 通知主进程
    //     window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
    //     pwdinputNextEleItem.click();
    // } else {
    //     const text = '支付宝h5支付: 未找到输入完支付密码下一步按钮';
    //     //! 通知主进程
    //     window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
    //     return;
    // }
}

//* 检测并自动输入密码(长密码)
async function payPassWordLong() {
    // 等待1秒,确保页面元素已经渲染
    await new Promise((resolve) => setTimeout(resolve, 1000));
    // 查找支付宝输入密码元素
    let pwdEle = document.querySelectorAll(".adm-input-element");
    for (let i = 0; i < 10; i++) {
        if (pwdEle && pwdEle.length > 0) {
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        pwdEle = document.querySelectorAll(".adm-input-element");
    }
    const pwdEleLength = pwdEle ? pwdEle.length : 0;
    //* 正常支付宝
    if (pwdEle && pwdEle.length > 0) {
        const text = '支付宝h5支付: 找到密码输入框';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        pwdEle[0].focus();
    } else {
        const text = '支付宝h5支付: 页面异常,未找到密码输入框';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        return;
    }
    let password = '${info.paymentPassword}';
    //* 自动输入密码
    let pasArray = password.split('');
    pasArray.forEach(pas => {
        document.execCommand("insertText", false, pas);
    })
    //! 通知主进程
    window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: '支付宝h5支付: 输入密码页面 密码输入完成' });

    // 等待1秒,确保页面元素已经渲染
    await new Promise((resolve) => setTimeout(resolve, 1000));
    let nextEle = document.querySelector("[class*='pwdValidate__btn']");
    for (let i = 0; i < 10; i++) {
        if (nextEle) {
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        nextEle = document.querySelector("[class*='pwdValidate__btn']");
    }
    if (nextEle) {
        const text = '支付宝h5支付: 密码输入完成,点击下一步按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        nextEle.click()
    } else {
        const text = '支付宝h5支付: 密码输入完成异常,未找到下一步按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        return;
    }
}

//* 支付宝支付完成页(长密码)
async function payCompleteLong() {
    await new Promise((resolve) => setTimeout(resolve, 1000));
    let completeEle = Array.from(document.querySelectorAll("[class*='adm-button-shape-default']"));
    let completeEleItem = ''
    for (let i = 0; i < 10; i++) {
        if (completeEle.find(item => item.textContent.includes("完成"))) {
            completeEleItem = completeEle.find(item => item.textContent.includes("完成"))
            break;
        }
        await new Promise((resolve) => setTimeout(resolve, 200));
        completeEle = Array.from(document.querySelectorAll("[class*='adm-button-shape-default']"));
    }
    if (completeEleItem) {
        const text = '支付宝h5支付: 完成页面,点击完成按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
        completeEleItem.click();
    } else {
        const text = '支付宝h5支付: 完成页面异常,未找到完成按钮';
        //! 通知主进程
        window.electronAPI.send('takeOrder-window', { type: 'unSelectElement', msg: text });
    }
}
console 命令行工具 X clear

                    
>
console