处理验证码一般会有以下几种方式:
1.关闭验证码功能
2.设置万能验证码
3.通过第三方平台识别验证码并返回
以超级鹰平台为例:
-
获取验证码图片 - 使用selenium提供的方法获取图片
driver.find_element(By.ID,"Verify_Code").screenshot("verify.png")
-
通过第三方接口发送请求识别验证码图片内容
-
提取验证码图片
files = {"userfile":open("verify.png","rb")} #二进制读取 rb
-
发送请求到超级鹰平台进行识别
resp = requests.post(url,data,files)
-
查看响应结果
res = res.json() print(res)
-
提取数字内容
if res["err_no"]==0: code = res["pic_str"] print(f"验证码识别成功:{code}") else: print("识别失败")
注意:
- 一般处理特殊场景或者特殊功能实现不会与用例脚本代码混合在一起,而是会独立封装后调用
- 主要目的是降低代码耦合性