Selenium自动化登录详解

相信有很多新手小白都跟我遇到一样的问题,在验证码识别这一块出现了很多的问题。那么,我是对于那些截图的验证码的提交的方法有些混乱,但是,有些打码平台给出的案列呢,又无法看明白,搞了几天都没能搞出来的。这一种是非常的痛苦的。那么对于自动化登录,验证码的类型有非常的多。列子如下:

  • 纯英文
  • 纯数字
  • 英文加上数字
  • 滑块
  • 双滑块
  • 计算

等等一系列的类型。那么今天就写一下自己的,搞了几天滑块验证码,图案点击验证码,没搞出来从而放弃转向那种比较简单一点点的验证码。纯英文验证码的案列。(以古诗词网为列子)

纯英文验证码
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')

```

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)


```

最后作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些软件测试的学习资源,希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值