求助:用Tampermonkey自动点击登录30分钟后出现的无ID网页按钮
Tampermonkey自动点击延迟显示按钮的解决方案
你的问题核心有两个:
- 之前的脚本用了VBS语法,而Tampermonkey运行的是JavaScript,语法不兼容
- 按钮是登录30分钟后才动态加载的,页面初始加载时直接查找找不到元素
可行的解决脚本
下面是适配JavaScript语法、支持动态元素检测的脚本:
// ==UserScript== // @name Auto Click Refresh Token Button // @namespace http://tampermonkey.net/ // @version 0.1 // @description 自动点击30分钟后出现的Refresh Token按钮 // @author You // @match 替换成目标网站的URL // @grant none // ==/UserScript== (function() { 'use strict'; // 设置轮询定时器,每2秒检查一次按钮是否出现 const checkInterval = setInterval(() => { // 用类名查找按钮,类名之间用.连接 const buttons = document.querySelectorAll('.wb-button.wb-button--secondary.wb-button--small'); for (const btn of buttons) { // 处理文本空格问题,确保匹配准确 if (btn.innerText.trim() === 'Refresh Token Now') { btn.click(); // 找到按钮并点击后,清除定时器避免重复执行 clearInterval(checkInterval); break; } } }, 2000); // 2000毫秒=2秒,可根据需要调整间隔 })();
关键说明
- 语法修正:用JavaScript的
for...of遍历元素,替代VBS的For Each语法 - 动态元素处理:通过
setInterval定时轮询,直到按钮加载完成 - 文本匹配优化:用
trim()去除文本前后的空格,避免因页面排版空格导致匹配失败 - 停止轮询:点击按钮后立即清除定时器,防止重复触发
额外注意事项
- 替换脚本中的
@match值为目标网站的完整URL(比如https://example.com/*) - 如果按钮的类名有变化,需要更新
querySelectorAll中的选择器 - 如果按钮文本是动态渲染的(比如包含隐藏字符),可以改用
btn.textContent.includes('Refresh Token Now')进行模糊匹配
内容的提问来源于stack exchange,提问作者buzzardhawkz
相关产品推荐
相关产品推荐

