selenium验证码的解决办法

在做web自动化登录时,每当遇到验证码有几种解决方式:

1,设置万能验证码

2,通过pytesser破解图片

3,通过代码控制等待手动输入验证(附代码)

下面就是第三种方式

复制代码
#coding=utf-8
from selenium import webdriver
import time
def log_in_sps(mobile='',password=''):
    if mobile and password:
        browser = webdriver.Chrome()
        url = 'https://dev-sps.xinfushe.cn/serviceLogin/serviceProviderLogin'
        browser.get(url)
        time.sleep(3)
        if browser.find_element_by_id('mobile').is_displayed():
            browser.find_element_by_id('mobile').send_keys(mobile)
            browser.find_element_by_id('password').send_keys(password)
            time.sleep(3)
            if browser.find_element_by_id('valico').is_displayed():
                print browser.find_element_by_id('valico').is_displayed()
                while True:
                    #val = browser.find_element_by_id('valico').text
                    val = raw_input('Input valico:')
                    if val and len(val)>0:
                        print val
                        browser.find_element_by_id('valico').send_keys(val)
                        break
                    pass
                pass
            browser.find_element_by_id('loginsub').click()
            print 'log in'
            time.sleep(3)
            browser.quit()
if __name__=='__main__':
    log_in_sps(mobile='13146751613',password='a111111')
复制代码

 

posted @   wuzhiyi  阅读(3002)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示