上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
12下一页
返回列表 发新帖

小白请教,油猴自动点击功能

[复制链接]

该用户从未签到

1

主题

16

回帖

18

积分

助理工程师

积分
18
发表于 2024-4-28 23:27:33 | 显示全部楼层 | 阅读模式
悬赏2油猫币未解决

第一段代码:
`// ==UserScript==
// @name Loop Click Button
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Loop click a specified button by increasing a variable
// @author You
// @match :///*
// @grant none
// ==/UserScript==

(function() {
'use strict';

// 定义变量 i
let i = 1;

// 定时器,每隔一定时间点击一次按钮
let interval = setInterval(function() {
    // 构造按钮选择器
    let selector = `#page > div:nth-child(${i}) > div.kechengR > div.progress.progressflex > a > div`;

    // 获取按钮元素
    let button = document.querySelector(selector);

    // 如果按钮存在,点击它
    if (button) {
        button.click();
        i++; // 增加 i 的值

    } else {
        // 如果按钮不存在,清除定时器
        clearInterval(interval);
    }
}, 5000); // 每隔2秒点击一次按钮

})();
第二段代码 // ==UserScript==
// @name Click All Buttons
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Click all buttons that match the criteria
// @author You
// @match :///*
// @grant none
// ==/UserScript==

(function() {
'use strict';

//章节学习
// 获取具有多个类的元素集合
let elements = document.querySelectorAll('.classLogin.classLogin-width.blue');
// 遍历并点击每个按钮
elements.forEach(function(element) {
    element.click();

  });

})();`

如何才能写在一个脚本里先点击第一段代码里的按钮,得出的页面上含有第二段代码的按钮,用第二段代码点击第一个按钮就退出第二段代码?

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6758

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-4-29 02:27:25 | 显示全部楼层

    没看懂具体含义

    大概意思是脚本一打开了一个页面,然后等待第二个页面点击完退出再继续第一段代码?
    一般情况应该可以在二页面里附件一个url的参数来做解析

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    16

    回帖

    18

    积分

    助理工程师

    积分
    18
    发表于 2024-4-29 11:51:53 | 显示全部楼层
    有的信息不方便公布在网上,可以加QQ聊吗?QQ:2848025254
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    16

    回帖

    18

    积分

    助理工程师

    积分
    18
    发表于 2024-4-29 14:23:28 | 显示全部楼层
    李恒道 发表于 2024-4-29 02:27
    [md]没看懂具体含义

    大概意思是脚本一打开了一个页面,然后等待第二个页面点击完退出再继续第一段代码?

    大哥可以帮忙,看一下嘛?


    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6758

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-4-29 17:08:16 | 显示全部楼层
    egg2022 发表于 2024-4-29 14:23
    大哥可以帮忙,看一下嘛?

    敏感信息删掉了哥哥

    你是想等第二段脚本全部执行完再返回来继续执行第一段?
    那样可能比哥哥想得复杂

    需要两个脚本互相通信
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    16

    回帖

    18

    积分

    助理工程师

    积分
    18
    发表于 2024-4-29 17:59:14 | 显示全部楼层
    李恒道 发表于 2024-4-29 17:08
    敏感信息删掉了哥哥

    你是想等第二段脚本全部执行完再返回来继续执行第一段?

    不需要写两个脚本,我是不会如何写在一起所以分开了测试,写成一个脚本
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    16

    回帖

    18

    积分

    助理工程师

    积分
    18
    发表于 2024-4-29 23:50:19 | 显示全部楼层
    先点这个按钮
    需要点击的按钮:进入课程.PNG
    再点课件按钮
    需要进入课程后点击是课件学习按钮.PNG
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6758

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-4-30 02:46:07 | 显示全部楼层
    egg2022 发表于 2024-4-29 23:50
    先点这个按钮

    再点课件按钮

    哥哥你目前最卡的问题是什么
    不知道两个标签页怎么交互还是传递信息
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    16

    回帖

    18

    积分

    助理工程师

    积分
    18
    发表于 2024-4-30 08:22:14 | 显示全部楼层
    我把两段代码写到一起,就不运行了:
    // ==UserScript==
    // @name Loop Click Button
    // @namespace http://tampermonkey.net/
    // @version 0.1
    // @description Loop click a specified button by increasing a variable
    // @author You
    // @match :///*
    // @grant none
    // ==/UserScript==

    (function() {
    'use strict';

    // 定义变量 i
    let i = 1;

    // 定时器,每隔一定时间点击一次按钮
    let interval = setInterval(function() {
        // 构造按钮选择器
        let selector = `#page > div:nth-child(${i}) > div.kechengR > div.progress.progressflex > a > div`;

        // 获取按钮元素
        let button = document.querySelector(selector);

        // 如果按钮存在,点击它
        if (button) {
            button.click();
            i++; // 增加 i 的值

    //章节学习
    // 获取具有多个类的元素集合
    let elements = document.querySelectorAll('.classLogin.classLogin-width.blue');
    // 遍历并点击每个按钮
    elements.forEach(function(element) {
        element.click();


        } else {
            // 如果按钮不存在,清除定时器
            clearInterval(interval);
        }
    }, 5000); // 每隔2秒点击一次按钮
    })();
      });
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-27 20:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    16

    回帖

    11

    积分

    荣誉开发者

    积分
    11

    荣誉开发者油中3周年油中2周年

    发表于 2024-5-7 01:51:47 | 显示全部楼层
    本帖最后由 s0919756 于 2024-5-7 01:59 编辑

    你研究一下吧~~希望對你的學習幫助~~你可以設置你需要的頁面~也可設置為所有頁面~但是那是不可能的~因為你會很煩~~~~每轉換一頁面你就看到點擊點點點點點到你煩
    這個是依據你提供的資訊~~做個範例~全局變量~錯誤處理解析~自動化~~~有問題在告我吧~~~
    // 全局變量:我們定義一個全局變量 `clickCount` 來記錄點擊的次數
    let clickCount = 0;

    // 全局錯誤狀態追蹤。
    let globalErrorStatus = {
      hasError: false,
      errorMessage: ''
    };

    // 自動化:我們使用一個定時器來自動執行點擊操作
    let timer = setInterval(function() {
        // 錯誤處理:我們使用 try...catch 來捕獲可能出現的錯誤
        try {
            // 獲取要點擊的元素
            let element = document.querySelector('.clickable');
            // 如果元素存在,則點擊它
            if (element) {
                element.click();
                // 更新點擊次數
                clickCount++;
                console.log(`已點擊 ${clickCount} 次`);
            } else {
                // 如果元素不存在,則停止執行
                clearInterval(timer);
                console.log('已無可點擊的元素,停止執行');
            }
        } catch (error) {
            // 如果出現錯誤,則更新全局錯誤狀態並嘗試糾正數據
            globalErrorStatus.hasError = true;
            globalErrorStatus.errorMessage = error.message;
            // 在此實現糾正數據的邏輯。
            // 這是實際錯誤糾正邏輯的佔位符。
            console.log(`根據錯誤信息糾正的數據: ${error.message}`);
        }
    }, 1000); // 每隔1000毫秒(1秒)執行一次

    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表