2017-07-15 203 views
0

我是一个试图学习python编程的新手。作为一名自学成才的编程人员,我尝试通过一个项目来学习python。我尝试制作一个自动脚本,可以访问一个页面,执行一些操作并解析音频验证码。此刻,我被困在切换帧并从验证码帧中选择音频。Python - selenium webdriver切换到验证码框架并选择音频

http://imgur.com/JBjOYJl - 切换到播放语音识别

http://imgur.com/hxtavXC - 我要访问此为时刻

我把代码在这里。点击“我不是机器人”后,我没有收到任何错误或什么,但没有任何事情发生。

import time 
from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.common.action_chains import ActionChains 
from selenium.webdriver.support import expected_conditions as EC 

driver = webdriver.Firefox() 

driver.get("website.com") 

driver.find_element_by_xpath('//a[contains(text(), "ClickHere!")]').click() 

driver.find_element_by_name("address").click() 

address = driver.find_element_by_name("address") 
address.send_keys("xGDnjCuYNe52ieJagKnBwhUepPsPd6jGhY") 

action = ActionChains(driver) 
action.send_keys(Keys.TAB * 3) 
time.sleep(2) 
action.send_keys(Keys.ENTER) 
action.perform() 

recaptchaFrame = WebDriverWait(driver, 7).until(
EC.presence_of_element_located((By.TAG_NAME ,'iframe')) 
) 

frameName = recaptchaFrame.get_attribute('iframe') 
driver.switch_to_frame(frameName) 
driver.find_element_by_tag_name("iframe") 

time.sleep(2) 

frameName = ActionChains(driver) 
frameName.send_keys(Keys.TAB) 
time.sleep(3) 
frameAction.send_keys(Keys.ENTER) 

现在,程序会自动切换到播放语音识别

谢谢。

回答

0

谷歌reCAPTCHA技术被做成“在机器人上很难,对人类很容易”,你可以阅读更多关于它here。这里有一个网站的片段:

reCAPTCHA是一项免费服务,可以保护您的网站免受垃圾邮件和 的滥用。 reCAPTCHA使用先进的风险分析引擎和自适应验证码,以防止自动化软件在您的网站上进行恶意活动 。它可以让您的有效用户 轻松通过。

我的猜测是Google会以某种方式将您的自动化程序识别为bot,而不会让您通过。

+0

很高兴知道。我会尝试以其他方式做到这一点。感谢您的时间。 –