用硒和2Captcha解决图片验证码(JAVA) [英] Solving Picture Captcha With Selenium and 2Captcha (JAVA)

查看:466
本文介绍了用硒和2Captcha解决图片验证码(JAVA)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在努力使用硒,java,2captcha的api解决验证码.

I have been struggling with solving captcha using selenium, java, 2captcha's api.

它单击验证"按钮,但不能解决图片,不会弹出错误.

It clicks the verify button but doesn't solve the picture, no errors pop out..

这是我的代码:

private void solveCaptcha(String apiKey) {
    String googleKey = "6Lcsv3oUAAAAAGFhlKrkRb029OHio098bbeyi_Hv"; 
    String pageUrl = "https://secure.runescape.com/m=weblogin/loginform?theme=oldschool&mod=www";
    TwoCaptchaService service = new TwoCaptchaService(apiKey, googleKey, pageUrl);         

    try {
        String responseToken = service.solveCaptcha();
        By frame = By.xpath("//iframe[@title='recaptcha challenge']");

        WebElement frameElement = driver.findElement(frame);

        driver.switchTo().frame(frameElement);
        System.out.println("Solved and Generated Response Token: " + responseToken);
        JavascriptExecutor js = (JavascriptExecutor) driver;

        js.executeScript("document.getElementById('recaptcha-token').innerHTML = '" + responseToken + "';");
        Thread.sleep(500);
        js.executeScript("document.getElementById('recaptcha-verify-button').click();");
    } catch (InterruptedException e) {
        System.out.println("ERROR case 1");
        e.printStackTrace();
    } catch (IOException e) {
        System.out.println("ERROR case 2");
        e.printStackTrace();
    }
}

我非常感谢您的帮助

推荐答案

尝试一下.

  private void solveCaptcha(String apiKey) {
            String googleKey = "6Lcsv3oUAAAAAGFhlKrkRb029OHio098bbeyi_Hv"; 
            String pageUrl = "https://secure.runescape.com/m=weblogin/loginform?theme=oldschool&mod=www";
            TwoCaptchaService service = new TwoCaptchaService(apiKey, googleKey, pageUrl);         

            try {
                String responseToken = service.solveCaptcha();

                System.out.println("Solved and Generated Response Token: " + responseToken);
                JavascriptExecutor js = (JavascriptExecutor) driver;

                js.executeScript("document.getElementById('g-recaptcha-response').innerHTML = '" + responseToken + "';");
                Thread.sleep(500);


                js.executeScript("onSubmit()");
            } catch (InterruptedException e) {
                System.out.println("ERROR case 1");
                e.printStackTrace();
            } catch (IOException e) {
                System.out.println("ERROR case 2");
                e.printStackTrace();
            }
        }

这篇关于用硒和2Captcha解决图片验证码(JAVA)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆