如何定位并调用FunCaptcha回调函数提交token?C# Selenium场景
定位Twitter注册FunCaptcha回调函数的实操方法
1. 先查全局变量找线索
打开浏览器开发者工具的Console面板,直接输入以下代码搜索FunCaptcha的全局对象:
window.FunCaptcha || window.fc || window.funCaptcha
这类验证码一般会暴露全局对象,里面大概率有onSuccess、verifyCallback这类接收token的回调方法。
2. 用断点抓调用流程
- 打开Sources面板的XHR/fetch Breakpoints,添加
captcha、verify、token这类关键词的断点,手动走一遍验证流程,拦下来相关请求后查看调用栈,就能找到触发验证的JS函数。 - 或者在Event Listener Breakpoints里勾选Mouse的click事件,点击验证码的验证按钮,顺着调用栈找处理token的入口。
3. 切到验证码iframe里找
FunCaptcha基本都是嵌在iframe里的,右键验证码选“检查”找到iframe标签,然后在Elements面板顶部的下拉框切换到这个iframe的上下文,接着:
- 搜索iframe里的JS代码,找带
token、verify、callback的函数 - 查看
window.parent相关的调用,因为验证完后通常会把token传给父页面的回调
4. 用Selenium直接扫页面函数
手动查找麻烦的话,用C# Selenium执行JS扫描全局函数:
// 扫描全局范围内可能的回调函数名 var callbackName = driver.ExecuteScript(@" for (var prop in window) { if (typeof window[prop] === 'function' && (prop.includes('verify') || prop.includes('captcha') || prop.includes('callback'))) { return prop; } } return null; ");
拿到函数名后直接传token调用:
string yourToken = "第三方求解的token"; driver.ExecuteScript($"window.{callbackName}('{yourToken}');");
5. 扒页面初始化的JS配置
去Sources面板的页面JS文件里搜索FunCaptcha、onVerify、fc-token这类关键词,页面初始化验证码时一般会配置回调,比如:
FunCaptcha.init({ sitekey: "xxxx", callback: function(token) { // 这里就是处理token的逻辑 } });
内容的提问来源于stack exchange,提问作者Stefan Taseski
相关产品推荐
相关产品推荐

