egg2022 发表于 2024-4-28 23:27:33

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

第一段代码:
`// ==UserScript==
// @name         Loop Click Button
// @namespace    http://tampermonkey.net/
// @version      0.1
// @descriptionLoop 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
// @descriptionClick 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();

      });
})();`

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

李恒道 发表于 2024-4-29 02:27:25

没看懂具体含义

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

egg2022 发表于 2024-4-29 11:51:53

有的信息不方便公布在网上,可以加QQ聊吗?QQ:2848025254

egg2022 发表于 2024-4-29 14:23:28

李恒道 发表于 2024-4-29 02:27
没看懂具体含义

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

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


李恒道 发表于 2024-4-29 17:08:16

egg2022 发表于 2024-4-29 14:23
大哥可以帮忙,看一下嘛?

敏感信息删掉了哥哥

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

需要两个脚本互相通信

egg2022 发表于 2024-4-29 17:59:14

李恒道 发表于 2024-4-29 17:08
敏感信息删掉了哥哥

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


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

egg2022 发表于 2024-4-29 23:50:19

先点这个按钮

再点课件按钮

李恒道 发表于 2024-4-30 02:46:07

egg2022 发表于 2024-4-29 23:50
先点这个按钮

再点课件按钮

哥哥你目前最卡的问题是什么
不知道两个标签页怎么交互还是传递信息

egg2022 发表于 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秒点击一次按钮
})();
});

s0919756 发表于 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秒)執行一次

页: [1] 2
查看完整版本: 小白请教,油猴自动点击功能