Wednesday 11 September 2013

Handling Captcha | Webdriver

Make use of the 'input' tag with type 'hidden' in-order to handle Captcha.

Look at this example for reference..


driver.get("http://www.google.com/recaptcha/learnmore");
driver.switchTo().frame(0); //calling iframe with no id
JavascriptExecutor js = (JavascriptExecutor) driver; 
//Setting the captcha values 
js.executeScript("document.getElementsByName('recaptcha_challenge_field')[0].setAttribute('value', '03AHJ_Vuv4tV3FrmUHbImL9JPkWJNqs1KDbFdKfG1jhqa2Uhl4U1vzLxXtZMMkZoAHuVCXA1js3GiaaQJ-zqyuledzZP-PEOV-y_Fx87-U6HVu4nh8kfwPzfPU50yEV5oscb20ptwMGR5EEoAtE8dfAlwCVejJtP779upzfAqn_ID5IQJ2F9Nw218')");
driver.findElement(By.name("recaptcha_response_field")).sendKeys("23129555894");
driver.findElement(By.name("Button1")).click();


Note: setAttribute plays a major role here.

5 comments:

  1. Hi Prasanth,

    Is there anyway to type captcha text without typing 23129555894 other than OCR.

    ReplyDelete
  2. Hi
    I do the same what you write but it shows incorrect Captcha.

    ReplyDelete
  3. from where you got this value or why we are entering this 23129555894 ?

    ReplyDelete
  4. Is it necessary to apply getElementsByName('')
    ?

    Because I dont have any name in the element.
    will it work without name attribute ?

    ReplyDelete
  5. Thanks for the informative article. This is one of the best resources I have found in quite some time. Nicely written and great info. I really cannot thank you enough for sharing.DataScience with Python Training in Bangalore



    ReplyDelete