我有一个刮板机器人,我想在遇到验证码时停止,所以不要惹恼网站。但是硒找不到它
driver.find_element_by_xpath("//*[@id='recaptcha-anchor']")
这是chrome给我的xpath。
错误
NoSuchElementException:无法找到元素:{“method”:“xpath”,“selector”:“// * [@ id ='recaptcha-anchor']”}
为什么这不起作用的任何想法?
答案 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()