您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
2024
// ==UserScript== // @name human_bench_mark_cheats // @namespace http://tampermonkey.net/ // @match https://humanbenchmark.com/* // @grant none // @version 1.0 // @author AWAQ // @description 2024 // @license AGPL-3.0 // ==/UserScript== // https://github.com/awaqawaqawaq/JS_scripts // humanbenchmark真是一个非常适合脚本初学者学习的网站😂😂😂 window.addEventListener("load", function () { if ( window.location.href === "https://humanbenchmark.com/tests/reactiontime" ) { // 选择需要观察变动的节点 const getTargetNode = () => document.querySelector(".anim-slide-fade-in"); // 观察器的配置(需要观察什么变动) const config = { attributes: true, childList: true, subtree: true }; // 创建一个观察器实例 const observer = new MutationObserver(callback); // 当观察到变动时执行的回调函数 function callback(mutationsList, observer) { for (let mutation of mutationsList) { if (mutation.type === "childList") { console.log(mutation.target); console.log("A child node has been added or removed."); // 暂停观察器,避免死循环 observer.disconnect(); // 模拟鼠标 mousedown 事件 simulateMouseDown(mutation.target); // 点击完成后重新启用观察器 observer.observe(getTargetNode(), config); } else if (mutation.type === "attributes") { console.log( "The " + mutation.attributeName + " attribute was modified." ); } } } const targetNode = getTargetNode(); if (!targetNode) { console.error("Target node not found!"); return; // Exit if the target node doesn't exist } // 开始观察目标节点 observer.observe(targetNode, config); // 模拟鼠标 mousedown 事件 function simulateMouseDown(target) { if (!target) return; // 创建和触发 mousedown 事件 const mousedownEvent = new MouseEvent("mousedown", { bubbles: true, cancelable: true, view: window, }); target.dispatchEvent(mousedownEvent); console.log("Simulated a mousedown event on the target element."); } } if (window.location.href === "https://humanbenchmark.com/tests/sequence") { let simulateMouseEvent = (element) => { element.dispatchEvent( new MouseEvent("mousedown", { bubbles: true, cancelable: true, button: 0, }) ); element.dispatchEvent( new MouseEvent("mouseup", { bubbles: true, cancelable: true, button: 0, }) ); }; let observer = new MutationObserver((mutationList) => { mutationList.forEach((mutation) => { if (mutation.type === "attributes") { let element = mutation.target; let num = parseInt( document.querySelectorAll(".css-dd6wi1 span")[1].innerText ); if (element.classList.contains("active")) { console.log(num); elementArray.push(element); console.log(element); if (num === 31) { observer.disconnect(); } if (elementArray.length == num) { setTimeout(() => { elementArray.forEach((element) => { simulateMouseEvent(element); }); elementArray = []; //注意异步编程,不能写在外面 }, 2000); } } } }); }); const config = { attributes: true, childList: true, subtree: true }; let startBtn = document.querySelector(".css-de05nr.e19owgy710"); simulateMouseEvent(startBtn); let elementArray = []; let elementNode = document.querySelector(".squares"); observer.observe(elementNode, config); } if (window.location.href == "https://humanbenchmark.com/tests/typing") { function similateKeyPress(character, element) { let keydownEvent = new KeyboardEvent("keydown", { key: character, bubbles: true, cancelable: true, }); let keyupEvent = new KeyboardEvent("keyup", { key: character, bubbles: true, cancelable: true, }); element.dispatchEvent(keydownEvent); element.dispatchEvent(keyupEvent); } let spans = document.querySelectorAll('[tabindex="1"] span'); let spansText = Array.from(spans).map((element) => element.innerText); spansText.forEach((text, index) => { similateKeyPress(text, spans[index]); }); } if (window.location.href == "https://humanbenchmark.com/tests/memory") { let simulateMouseEvent = (element) => { element.dispatchEvent( new MouseEvent("mousedown", { bubbles: true, cancelable: true, button: 0, }) ); element.dispatchEvent( new MouseEvent("mouseup", { bubbles: true, cancelable: true, button: 0, }) ); }; let observer = new MutationObserver((mutationList) => { mutationList.forEach((mutation) => { if (mutation.type === "attributes") { let element = mutation.target; let num =parseInt(document.querySelectorAll(".css-dd6wi1 span")[1].innerText); console.log(num); if(num===40){ observer.disconnect(); } if (element.classList.contains("active")) { elementArray.push(element); console.log(element); setTimeout(() => { simulateMouseEvent(element); }, 2000); } } }); }); let elementArray = []; const config = { attributes: true, childList: true, subtree: true }; let elementNode = document.querySelector( ".memory-test.css-aix2he.e19owgy77" ); let startBtn = document.querySelector(".css-de05nr.e19owgy710"); observer.observe(elementNode, config); simulateMouseEvent(startBtn); } if (window.location.href === "https://humanbenchmark.com/tests/aim") { let node = document.querySelector(".desktop-only"); let observer = new MutationObserver(function (mutationsList) { // if(mutationsList.length!=0){ // let element=document.querySelector('[data-aim-target="true"]'); // if(element){ // simulateMouseEvent(element); // }else{ // observer.observe(node,{childList:true,subtree:true}); // }} //这种方式无法确保元素已经成功渲染,会导致出现“暂停”的行为 //最好的方式是利用 foreach 循环,确保元素成功加载 //foreach 也会导致“暂停” mutationsList.forEach(function (mutation) { // console(mutation.oldValue); let element = document.querySelector('[data-aim-target="true"]'); if (element) simulateMouseEvent(element); }); }); observer.observe(node, { childList: true, subtree: true }); function simulateMouseEvent(element) { const box = element.getBoundingClientRect(); const coordX = box.left + (box.right - box.left) / 2; const coordY = box.top + (box.bottom - box.top) / 2; element.dispatchEvent( new MouseEvent("mousedown", { view: window, bubbles: true, cancelable: true, clientX: coordX, clientY: coordY, button: 0, }) ); element.dispatchEvent( new MouseEvent("mouseup", { view: window, bubbles: true, cancelable: true, clientX: coordX, clientY: coordY, button: 0, }) ); } } if ( window.location.href === "https://humanbenchmark.com/tests/verbal-memory" ) { // 获取开始按钮并点击 let startBtn = document.querySelector(".css-de05nr.e19owgy710"); if (startBtn) { startBtn.click(); } // 获取看到的按钮和新单词按钮 let seen = document.getElementsByClassName("css-de05nr e19owgy710")[0]; // 假设这是"已见"按钮 let newWord = document.getElementsByClassName("css-de05nr e19owgy710")[1]; // 假设这是"新单词"按钮 let MAP = new Map(); let cnt = 0; // 定义一个函数来处理新单词的点击 function handleWord() { let text = document.querySelector(".word").innerText; // 获取当前单词 console.log(text); if (!MAP.has(text)) { MAP.set(text, 1); // 记录已见单词 if (newWord) { newWord.click(); // 点击新单词按钮 } } else { if (seen) { seen.click(); // 点击已见按钮 } } cnt++; // 限制循环次数或添加延迟以避免阻塞 if (cnt < 5000) { setTimeout(handleWord, 10); // 每秒执行一次 } } // 启动单词处理函数 setTimeout(handleWord, 1000); // 延迟启动,确保页面元素已加载 } if (window.location.href === "https://humanbenchmark.com/tests/chimp") { function loopTilEnd() { let i = 1; let startButton = document.querySelector(".css-de05nr.e19owgy710"); if (startButton) { startButton.click(); } else { return; } while (true) { let cell = document.querySelector(`[data-cellnumber="${i}"]`); if (!cell) { break; } else { cell.click(); i++; } } loopTilEnd(); } loopTilEnd(); } if ( window.location.href == "https://humanbenchmark.com/tests/number-memory" ) { let cnt = 0; function getNumbers() { if (cnt == 25) { return; } if (document.getElementsByClassName("big-number").length != 0) { let number = new Array(); for (let i of document.getElementsByClassName("big-number ")[0] .innerText) { number.push(i); console.log(i); } console.log(number); inputNumbers(number); cnt++; } else { setTimeout(() => { getNumbers(); }, 1); } } function simulateKeyPress(character, element) { let keydownEvent = new KeyboardEvent("keydown", { key: character, char: character, bubbles: true, }); let keyupEvent = new KeyboardEvent("keyup", { key: character, char: character, bubbles: true, }); element.dispatchEvent(keydownEvent); element.dispatchEvent(keyupEvent); } // 实际上并不能正确的输入 function inputNumbers(numbers) { let input = document.getElementsByTagName("input")[0]; if (input) { input.focus(); // 确保输入框获得焦点 numbers.forEach((number) => { // 使用 execCommand 插入每一个字符 document.execCommand("insertText", false, number); }); document.getElementsByClassName("css-de05nr e19owgy710")[0].click(); document.getElementsByClassName("css-de05nr e19owgy710")[0].click(); getNumbers(); } else { // 将 inputNumbers 函数作为回调传递给 setTimeout setTimeout(() => inputNumbers(numbers), 100); } } let startbtn = document.querySelector("button.css-de05nr.e19owgy710"); startbtn.click(); getNumbers(); } });