使用Tampermonkey脚本实现网页自动化和数值计算
许多用户需要自动化网页操作,例如自动点击、数据提取和计算,并将结果回填到网页。本文通过一个案例演示如何用JavaScript编写Tampermonkey脚本实现这些功能。
案例需求:自动点击网页“激励”按钮,获取“当前效率”数值,代入公式(100 - 当前效率) * 344
计算,并将结果输入指定输入框,最后点击“确定”按钮,循环执行直至“当前效率”达到100。
原脚本尝试使用document.querySelector
选择元素并进行计算和点击,但失败。问题在于选择器错误和点击操作顺序不当。specificbutton.click()
和confirmbutton.click()
的顺序应为“点激励->输入->确认”,且需在获取数据和计算后进行,并给予浏览器足够响应时间。
改进后的脚本如下:
// ==UserScript== // @name 网页自动化脚本 // @namespace http://tampermonkey.net/ // @version 0.2 // @description 自动化网页操作并进行数值计算 // @author You // @match http://spdq.natapp1.cc/estgzweb/ // @grant none // ==/UserScript== (function() { 'use strict'; // 请根据实际网页结构替换以下选择器 const specificButtonSelector = '/* 替换为激励按钮的选择器 */'; const numberElementSelector = '/* 替换为当前效率元素的选择器 */'; const inputElementSelector = '/* 替换为输入框的选择器 */'; const confirmButtonSelector = '/* 替换为确定按钮的选择器 */'; const specificButton = document.querySelector(specificButtonSelector); const numberElement = document.querySelector(numberElementSelector); const inputElement = document.querySelector(inputElementSelector); const confirmButton = document.querySelector(confirmButtonSelector); if (!specificButton || !numberElement || !inputElement || !confirmButton) { console.error('未找到所有必要元素'); return; } function process(){ const numberText = numberElement.textContent.trim(); const number = parseFloat(numberText); if (isNaN(number)) { console.error('无法获取有效数字'); return; } if(number >= 100) return; // 终止条件 const calculatedValue = (100 - number) * 344; inputElement.value = calculatedValue; specificButton.click(); setTimeout(() => { confirmButton.click(); }, 1000); } setInterval(process, 2000); })();
重要提示: 脚本中的选择器(specificButtonSelector
等)必须根据目标网页的HTML结构进行修改。 使用浏览器开发者工具(通常按F12键打开)检查网页元素并确定正确选择器。 setTimeout
函数中的延迟时间(1000毫秒)可能需要根据网页响应速度调整。 错误的选择器会导致脚本无法正常工作。 请谨慎使用此脚本,并确保理解其功能和潜在风险。