登录页面输入手机号,获取短信验证码(验证码有10分钟有效期)
1 连接sqlserver数据库,获取10分钟之内的有效短信验证码
2 页面输入手机号,并获取验证码。若存在有效验证码则输入验证码,若不存在则点击发送验证码后再获取验证码。
# coding:utf-8'''dinghanhua
获取验证码自动登录'''from selenium import webdriver
import time
#获取有效验证码
import pymssqldef get_sms_code(mobile):'''获取手机号最新的一条有效验证码'''with pymssql.connect(server='192.168.1.1',user='tester',password='111111',database='sms') as dbconnect:with dbconnect.cursor(as_dict=True) as cursor:cursor.execute("""SELECT TOP 1 SMS,CreateDate FROM SMSLog where mobile=%sand createdate > dateadd(minute,-10,GETDATE())order by CreateDate desc""",mobile) #获取当前时间前10分钟之内的验证码row = cursor.fetchone()if row:code = row['SMS'].split(':')[1][0:4] #截取短信中的验证码。您的验证码是:1234.10分钟内有效return code
url = 'http://testurl/' #环境地址phone = 'phonenumber' #手机号browser = webdriver.Chrome()browser.get(url)time.sleep(1)browser.find_element_by_id('Phone').send_keys(phone) #输入手机号code = get_sms_code(phone) #获取10分钟以内的验证码if not code: #若不存在,则点击发送验证码,再获取验证码browser.find_element_by_id('btnsend').click() #点击发送验证码time.sleep(2)code = get_sms_code(phone)browser.find_element_by_id('smsCode').send_keys(code) #输入验证码browser.find_element_by_id('btnLogin').click() #点击登录