简体   繁体   中英

submitting captcha with selenium using python

THIS IS NOT ABOUT HOW TO RETRIEVE TEXT FROM CATPCHA

Basically my problem is that after i extract text from captcha and enter it in the provided box, and simulate the 'return' key using element.send_keys(Keys.RETURN), an alert box comes up saying captcha was wrong and a new captcha comes up, though i can verify that text matches the captcha. I've also tried using the 'click' action on the submit button but no help.

An interesting thing i noticed was that if I automate the process upto entering captcha text and then press enter/click submit, everything works fine. So i think there is some problem in my way of simulating return/click through selenium. Any idea what can the problem be.

Just for the record I'm using tesseract OCR with pytesseract wrapper for python to decode captchas and I AM getting CORRECT text outputs in 90%+ cases, so its not just because of wrong text. I've also checked to remove any leading or trailing spaces using strip() method.

Your script is correct, you just need to insert a time.sleep(5) before submitting the final form: https://gist.github.com/pratyushmittal/68f67c20e4fb6f0cd072/5b9bec7de5e8fadd65a22e729015fc89de6dfca8

Selenium submits the captcha form as soon as the page finishes loading. In the current case, the website marks that as a robotic activity and displays the error.

Alternatively, you can also use RoboBrowser to go without Selenium (though this too will require a sleep ): https://gist.github.com/pratyushmittal/68f67c20e4fb6f0cd072/c65742ce78631058378c91ee89d0508874ea7ace

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM