diff --git a/scripts/agnthub_tasks.js b/scripts/agnthub_tasks.js new file mode 100644 index 0000000..022b5c1 --- /dev/null +++ b/scripts/agnthub_tasks.js @@ -0,0 +1,119 @@ +// ==UserScript== +// @name Eliminate button +// @namespace http://tampermonkey.net/ +// @version 0.2 +// @description 创建一个按钮,点击后循环点击指定的十个元素 +// @author Jack +// @match *://*/* +// @grant none +// ==/UserScript== + +'use strict'; + +// 用于控制循环的变量 +let isRunning = false; +let intervalId = null; + +// 创建按钮 +const button = document.createElement('button'); +button.textContent = "甩狙"; + +// 按钮样式 +button.style.position = "fixed"; +button.style.top = "50%"; +button.style.right = "30%"; +button.style.transform = "translateY(-50%)"; +button.style.padding = "80px 200px"; +button.style.fontSize = "30px"; +button.style.backgroundColor = "2ee649"; +button.style.color = "d08de0"; +button.style.border = "none"; +button.style.borderRadius = "5px"; +button.style.cursor = "pointer"; +button.style.zIndex = "10000"; +// 添加悬停效果 +button.style.transition = "background-color 0.3s"; +button.addEventListener('mouseover', () => { + if (!isRunning) { + button.style.backgroundColor = "#005f87"; + } +}); +button.addEventListener('mouseout', () => { + if (!isRunning) { + button.style.backgroundColor = "#007baf"; + } +}); + +// 要点击的XPath数组 +const xpaths = [ + '//*[@id="radix-:r9:"]/div[2]/div[1]/section/div/div/div[2]/div[1]/article[2]/div[2]/div[1]/div[2]/button', + '//*[@id="radix-:r9:"]/div[2]/div[1]/section/div/div/div[2]/div[1]/article[2]/div[2]/div[2]/div[2]/button', + '//*[@id="radix-:r9:"]/div[2]/div[1]/section/div/div/div[2]/div[1]/article[2]/div[2]/div[3]/div[2]/button', + '//*[@id="radix-:r9:"]/div[2]/div[1]/section/div/div/div[2]/div[1]/article[2]/div[2]/div[4]/div[2]/button', + '//*[@id="radix-:r9:"]/div[2]/div[1]/section/div/div/div[2]/div[1]/article[2]/div[2]/div[5]/div[2]/button', + '//*[@id="radix-:r9:"]/div[2]/div[1]/section/div/div/div[2]/div[1]/article[2]/div[2]/div[6]/div[2]/button', + '//*[@id="radix-:r9:"]/div[2]/div[1]/section/div/div/div[2]/div[1]/article[2]/div[2]/div[7]/div[2]/button', + '//*[@id="radix-:r9:"]/div[2]/div[1]/section/div/div/div[2]/div[1]/article[2]/div[2]/div[8]/div[2]/button', + '//*[@id="radix-:r9:"]/div[2]/div[1]/section/div/div/div[2]/div[1]/article[2]/div[2]/div[9]/div[2]/button', + '//*[@id="radix-:r9:"]/div[2]/div[1]/section/div/div/div[2]/div[1]/article[2]/div[2]/div[10]/div[2]/button' +]; + +// 定义单次点击十个按钮的函数 +async function clickElementsOnce() { + for (const xpath of xpaths) { + try { + // 查找元素 + const element = document.evaluate( + xpath, + document, + null, + XPathResult.FIRST_ORDERED_NODE_TYPE, + null + ).singleNodeValue; + + if (element) { + // 点击元素 + element.click(); + console.log(`已点击: ${xpath}`); + } else { + console.log(`未找到元素: ${xpath}`); + } + } catch (error) { + console.error(`处理${xpath}时出错:`, error); + } + + // 每个按钮之间等待0.8秒 + await new Promise(resolve => setTimeout(resolve, 800)); + } +} + +// 控制循环的函数 +function toggleLoop() { + if (isRunning) { + // 停止循环 + clearInterval(intervalId); + button.textContent = "甩狙"; + button.style.backgroundColor = "#007baf"; + console.log("已停止循环"); + } else { + // 开始循环 + button.textContent = "停止"; + button.style.backgroundColor = "#dc3545"; // 红色表示运行中 + console.log("开始循环点击"); + + // 立即执行一次,然后设置循环 + clickElementsOnce(); + + // 设置循环,每次循环完成后等待3秒 + intervalId = setInterval(() => { + clickElementsOnce(); + }, 3000 + (xpaths.length * 800)); // 3秒加上点击10个按钮的总时间 + } + isRunning = !isRunning; +} + +// 给按钮添加点击事件 +button.addEventListener('click', toggleLoop); + +// 将按钮添加到页面 +document.body.appendChild(button);