...
信息 |
---|
注意:有某些情况下,确实是没有回调函数,这种可以直接给g-recaptcha-response容器赋值然后提交表单即可。 |
目录 |
---|
方法一:通过控制台Elements进行搜索
打开显示的页面,按F12进入控制台,在Elements处按Ctrl+F进行搜索,搜索关键词:data-callback
...
代码块 |
---|
driver.execute_script(f'onSuccess("{gRecaptchaResponse}")') |
...
方法二:适用于reCaptcha V3系列
与方法一类似,搜索关键词:grecaptcha.render
...
代码块 |
---|
grecaptcha.render('example', { 'sitekey' : 'someSitekey', 'callback' : myCallbackFunction, 'theme' : 'dark' }); |
方法三:通过控制台Console查找
按F12,进入console, 输入 ___grecaptcha_cfg.clients
,如果报错,则这个网页没有加载reCaptcha
通常有很多节点,需要注意区别,这里onSuccess
就是我们要找的回调函数
...
方法四:通过自动查找函数查找
如果以上方法执行都有困难,可以尝试这种通过定义自动查找函数的方式查找
...
代码块 | ||
---|---|---|
| ||
[ { "id": "0", "version": "V2", "sitekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", "function": "onSuccess", "callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']", "pageurl": "https://www.google.com/recaptcha/api2/demo" } ] |
如下图
...
reCaptcha 匿名函数怎么调用?
注意:有时候找到的回调函数是一个函数名,比如上面提到的onSuccess
,调用时直接onSuccess(gRecaptchaResponse)
,但有时候查到是一个匿名函数,匿名函数的意思就是没有函数名,比如下面这种:
...
代码块 |
---|
___grecaptcha_cfg.clients[100000].l.l["promise-callback"](gRecaptchaResponse) |
方法五:全类型自动注入 (测试)
代码块 |
---|
(function (response) { const ele = document.getElementById("g-recaptcha-response"); if (ele) { ele.innerHTML = response; ele.text = response; } const base = Object.values(___grecaptcha_cfg.clients)[0]; for (let k0 of Object.keys(base)) { for (let k1 of Object.keys(base[k0])) { if (base[k0][k1] && base[k0][k1].callback && typeof base[k0][k1].callback === 'function') { base[k0][k1].callback(response); return true; } } } return false; })('你在平台获取的RESPONSE'); |