如何解决如何检测验证码何时完成?硒Python
目前,我正在努力正确识别验证码何时完成。我最初的策略是等到屏幕上显示选中标记,然后中断循环。即使未显示选中标记,element.is_displayed()返回true时当前发生的情况。什么是检测人工完成验证码的好方法?
print("Waiting for captcha completion.")
iframe = WebDriverWait(driver,300).until(
EC.presence_of_element_located(
(By.XPATH,"/html/body/div[1]/div[2]/div/div/div[2]/form/div[1]/div[3]/div/div/div/div/div/div/iframe"))
)
driver.switch_to.frame(iframe)
element = WebDriverWait(driver,"/html/body/div[2]/div[3]/div[1]/div/div/span/div[4]"))
)
for i in range(1000):
if element.is_displayed():
driver.switch_to.default_content()
button = WebDriverWait(driver,60).until(
EC.presence_of_element_located(
(By.XPATH,"/html/body/div/div[2]/div/div/div[2]/form/div[2]/button"))
)
break
time.sleep(.25)
解决方法
这是硒的最坏习惯,
CAPTCHA是完全自动化的公共Turing测试的缩写,用于告诉计算机和人类分开,它是专门为防止自动化而设计的,因此请勿尝试!避开验证码检查有两种主要策略:
在测试环境中禁用验证码 添加一个挂钩,以允许测试绕过验证码
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。