前言
相信有很多新手小白都跟我遇到一样的问题,在验证码识别这一块出现了很多的问题。
那么,我是对于那些截图的验证码的提交的方法有些混乱,但是,有些打码平台给出的案列呢,又无法看明白,搞了几天都没能搞出来的。这一种是非常的痛苦的。那么对于自动化登录,验证码的类型有非常的多。列子如下:
- 纯英文
- 纯数字
- 英文加上数字
- 滑块
- 双滑块
- 计算
等等一系列的类型。那么今天就写一下自己的,搞了几天滑块验证码,图案点击验证码,没搞出来从而放弃转向那种比较简单一点点的验证码。纯英文验证码的案列。(以古诗词网为列子)
同时,我也为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接点击文末小卡片免费领取资料文档
软件测试视频教程观看处:
软件测试工程师大忌!盲目自学软件测试真的会毁终生,能救一个是一个......
纯英文验证码
1.首先需要了解运行所需要的模块
```
from selenium import webdriver#浏览器驱动
from PIL import Image#ORC识别图片
from pc.chaojiying_Python.chaojiying import Chaojiying_Client
from selenium.webdriver.common.by import By#元素查找方法
from requests_html import HTMLSession
import time
```
2.获取我们的目标地址链接
```
# 创建请求对象
session = HTMLSession()
# 创建浏览器驱动对象
driver = webdriver.Chrome()
url = 'http://www.jianjiaoshuju.com/path/login.htm'
driver.maximize_window()
driver.get(url)
```
3.进入古诗词首页面,找到验证码的标签,获取并且保存
```
img = driver.find_element(By.XPATH, '//*[@id="imgCode"]')
img.screenshot('gus.png')
```
![](https://i-blog.csdnimg.cn/blog_migrate/8ae22b23cfb01de3aa35a080a7d52c1b.png)
4.调用超级鹰打码平台
下载之后,将文件夹复制粘贴在自己项目目录下,并且导入`from pc.chaojiying_Python.chaojiying
`from pc.chaojiying_Python.chaojiying import Chaojiying_Client`
5.调用超级鹰内的方法
```
chaojiying = Chaojiying_Client('超级鹰账号', '密码', '软件id号') #用户中心>>软件ID 生成一个替换 96001
im = open('gus.png', 'rb').read() #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
result = chaojiying.PostPic(im, 3004)#3004,验证码类型
print(result)
```
6.输入账号密码
```
driver.find_element(By.XPATH, '//*[@id="email"]').send_keys('古诗词账号')
time.sleep(0.5)
driver.find_element(By.XPATH, '//*[@id="pwd"]').send_keys('密码')
time.sleep(0.5)
driver.find_element(By.XPATH, '//*[@id="code"]').send_keys(result)
time.sleep(2)
# 点击确定按钮
driver.find_element(By.XPATH, '//*[@id="denglu"]').click()
time.sleep(2)
```
7.模拟登陆需要用cookie保持登陆状态
```
"""
selenium自动化登录,获取cookie,结合requests获取登录之后的数据
将cookie列表里面里面的元素进行key取value来组合新的字典
name的value值作为key值
value的value值作为value
"""
cookie_dict = {cookie['name']: cookie['value'] for cookie in driver.get_cookies()}
url = 'https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'
headers = {
# 'Host': 'www.jianjiaoshuju.com',
# 'Referer': 'http://www.jianjiaoshuju.com/path/login.htm',
# 'Upgrade-Insecure-Requests': '1',
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
}
response = session.get(url, headers=headers, cookies=cookie_dict).content.decode()
print(response)
```
总结忠告
努力了不一定有回报,但不努力是一定不会得到回报的。人类的幸福和快乐在于奋斗,而最有价值的是为理想而奋斗。要努力,不放弃,为了自己的理想,为了美好的明天。有梦就去追啊,愣在原地做什么。无论明日,有多落魄,至少今天,没有蹉跎。 生前何必久睡,死后自会长眠。
PS:我给大家整理了一套软件测试面试文档和一整套的软件测试资源,应该对朋友们跳槽面试、升职加薪、摆脱职业困境、提高自己的技术有很大的帮助,希望各位都能前程似锦。【点击文末小卡片免费领取软件测试全套资料】
资料包括:测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等。
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。