自动化测试-短信验证码处理
之前接触的的验证码都是图形验证码,可以借助图片识别来实现,不过识别率不太高
后又研究绕过验证码实现登录。
最近有遇到短信验证码的问题,网上看了有各种处理方法。
1、cookie 登录
自己先尝试了,使用cookie 登录的方法,
具体详见代码
1、 获取cookie
# FileName : VerifyCodeLogin.py # Author : Adil # DateTime : 2018/4/9 13:09 # SoftWare : PyCharm from selenium import webdriver import time,os,yaml url = 'https://www.baidu.com/' driver = webdriver.Chrome() driver.get(url) driver.implicitly_wait(5) driver.maximize_window() # 打开登录窗口 driver.find_element_by_xpath('//*[@id="u1"]/a[7]').click() # 选择用户名密码 driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__footerULoginBtn"]').click() # 选择短信验证码登录 driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__smsSwitchWrapper"]').click() cookiesList = driver.get_cookies() print(cookiesList) # 输入手机号 driver.find_element_by_id('TANGRAM__PSP_10__smsPhone').clear() driver.find_element_by_id('TANGRAM__PSP_10__smsPhone').send_keys("手机号码") # 发送验证码 driver.find_element_by_id('TANGRAM__PSP_10__smsTimer').click() # 输入验证码 print("请输入验证码:") verifyCode = input() driver.find_element_by_id('TANGRAM__PSP_10__smsVerifyCode').clear() driver.find_element_by_id('TANGRAM__PSP_10__smsVerifyCode').send_keys(verifyCode) driver.find_element_by_id('TANGRAM__PSP_10__smsSubmit').click() time.sleep(5) # 获取登录后的cookies loginCookies = driver.get_cookies() print(loginCookies) # 存储cookie # cookie1 = loginCookies[5] # cookie2 = loginCookies[6] # cookie3 = loginCookies[8] cookies = cookiesList # 存储到本地yaml 文件 # 当前文件路径 yamldir = os.path.split(os.path.realpath(__file__))[0] yamlFileName = os.path.join(yamldir,'cookies.yaml') fw = open(yamlFileName,'w',encoding='utf-8') # 数据组装 data = {"cookies":loginCookies} # 数据装载 yaml.dump(data,fw) driver.quit()
2、使用cookie 登录
# FileName : CookieLogin.py # Author : Adil # DateTime : 2018/4/9 13:35 # SoftWare : PyCharm from selenium import webdriver import time,os,yaml url = 'https://www.baidu.com/' driver = webdriver.Chrome() driver.get(url) driver.implicitly_wait(5) driver.maximize_window() driver.delete_all_cookies() print(driver.get_cookies()) fileDir = os.path.split(os.path.realpath(__file__))[0] yamlFileName = os.path.join(fileDir,'cookies.yaml') # 读取yaml 文件 f = open(yamlFileName,'r',encoding='utf-8') cont = f.read() cookies = yaml.load(cont) cookiesList = cookies.get('cookies') print(cookiesList) for cookie in cookiesList: print(cookie) driver.add_cookie(cookie) print(driver.get_cookies()) time.sleep(5) driver.get(url) driver.refresh() time.sleep(15) driver.quit()
2、使用万能验证码
让研发提供一个万能验证码
3、验证码存到数据库中,从数据库中读取验证码
4、做一个短信广播实时监听短信验证码
这里需要做一个短信广播小程序
参考地址:https://www.cnblogs.com/itstu/p/6873221.html
http://tieba.baidu.com/p/5153637250?red_tag=z1616417748
![](http://files.cnblogs.com/files/BlueSkyyj/zfbd.bmp)
您的资助是我最大的动力!
金额随意,欢迎来赏!
![](http://files.cnblogs.com/files/BlueSkyyj/wxzf.bmp)
您的资助是我最大的动力!
金额随意,欢迎来赏!
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的
因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Blue·Sky】!
【China-测试开发】技术交流群期待你的加入【 193056556 】
【欢迎扫码关注:日益】微信订阅号【 riyi18 】