我正在尝试以 2Captcha nad 为例,我想创建一个 Spotify 帐户。我已经正确填写了表格,但唯一担心的是 2Captcha。我已经尝试了在这里找到的各种方法,但都没有奏效。我试过了:
- ___grecaptcha_cfg.clients[0].bL.K.callback('token');
- window.captchaSuccessCallback(); (这是在 grecaptcha.render 方法中找到的)
- 这是我最后的方法:
val captcha = driver.findElement(By.id("captcha-div"))
val siteKey = captcha?.getAttribute("data-sitekey") ?: ""
println("Site key: $siteKey")
val solvedCaptcha = getCaptcha(siteKey, "2captchaKey", driver.currentUrl)
val js = driver as JavascriptExecutor
println(solvedCaptcha)
js.executeScript("document.getElementById('g-recaptcha-response').innerHTML='$solvedCaptcha';")
Thread.sleep(500)
val iframe = driver.findElement(By.xpath("//iframe[@title='recaptcha challenge']"))
println(iframe.toString())
driver.switchTo().frame(iframe)
js.executeScript("document.getElementById('recaptcha-verify-button').click();")
我使用的网址是这里
更新的代码(仍然不起作用)添加了模拟击键,希望在检测到任何按键后触发回调:
val captcha = driver.findElement(By.id("captcha-div"))
val siteKey = captcha?.getAttribute("data-sitekey") ?: ""
println("Site key: $siteKey")
val js = driver as JavascriptExecutor
val findElement = driver.findElement(By.id("g-recaptcha-response"))
js.executeScript("document.getElementById(\"g-recaptcha-response\").style.display = \"inline\";")
val solvedCaptcha = getCaptcha(siteKey, "captchaKey", driver.currentUrl)
println(solvedCaptcha)
solvedCaptcha?.forEach {
findElement.sendKeys(it.toString())
Thread.sleep(Random.nextLong(5L, 30L))
}
Thread.sleep(10000)