
使用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毫秒)可能需要根据网页响应速度调整。 错误的选择器会导致脚本无法正常工作。 请谨慎使用此脚本,并确保理解其功能和潜在风险。
以上就是如何用Tampermonkey脚本自动化网页操作并进行数值计算?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号