登陸頁面輸入手機號, 獲取短信驗證碼(驗證碼有10分鐘有效期)web
1 鏈接sql server數據庫,獲取10分鐘以內的有效短信驗證碼sql
2 頁面輸入手機號,並獲取驗證碼。若存在有效驗證碼則輸入驗證碼,若不存在則點擊發送驗證碼後再獲取驗證碼。數據庫
# coding:utf-8 ''' dinghanhua
獲取驗證碼自動登陸 ''' from selenium import webdriver
import time
#獲取有效驗證碼
import pymssql def 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=%s and 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() #點擊登陸