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.

6 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. Thanks for the great information in your blog Selenium Training in Chennai

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

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

    ReplyDelete