Python selenium和captcha

时间:2017-05-25 18:57:12

标签: python selenium xpath

我有一个刮板机器人,我想在遇到验证码时停止,所以不要惹恼网站。但是硒找不到它

driver.find_element_by_xpath("//*[@id='recaptcha-anchor']")

这是chrome给我的xpath。

错误

  

NoSuchElementException:无法找到元素:{“method”:“xpath”,“selector”:“// * [@ id ='recaptcha-anchor']”}

为什么这不起作用的任何想法?

1 个答案:

答案 0 :(得分:7)

AFAIK,验证码通常位于iframe内,因此您可以在搜索所需元素之前尝试切换到iframe

frame = driver.find_element_by_xpath('//iframe[contains(@src, "recaptcha")]')
driver.switch_to.frame(frame)
driver.find_element_by_xpath("//*[@id='recaptcha-anchor']")

如果您需要从iframe切换回来:

driver.switch_to.default_content()