绕过UI的cooke和token的验证
很多的网站都在登录页面加入了识别文字,识别图片,拖动拼图的验证码方式来防止爬虫、恶意注册等,如果是做自动化,需要绕过
验证码才能进入下一步操作。
方案一、测试环境去除验证码 :最轻松的方法,找开发帮忙解决。
方案二、万能验证码 (推荐): lemon, 这个也简单 和常用。推荐使用
方案三、之前接口部分讲第三方库的使用方法,收费
方案四、通过添加cookie绕过登录 绕过图片验证【UI自动化】
cookie是一门客户端技术,一般是由服务器生成返回给浏览器客户端来保存的,并且cookie是以键值对的形式保存在浏览器客户端
的,每一个cookie都会有名称,值,过期时间…用来保存少量的用户信息
Cookie有很多使用场景,在项目中比较常见的有:
- 登录记住用户名
- 记录用户浏览记录
Cookie种类:
1、会话cookie:保存在内存中,浏览器关闭就清除== 这种不适用。
2、持久cookie:保存在硬盘中,失效时间到之后就会清除 ,适用于cookies的处理方式登录。
添加cookie解决验证码思路:
在登录某个网站,如果勾选【自动登录】,当下次再访问该网站时就自动处于登录状态。这个功能其实就是将用户信息保
存在浏览器的cookie中,当再次访问网站时,浏览器直接使用本地保存的cookie用户信息进行登录。
所以我们在代码中也可以将用户信息添加到cookie中,再刷新浏览器即可;
import pyautogui
import pyperclip
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By# 百度案例
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('http://mall.lemonban.com:3344/')#带上cookies信息
driver.add_cookie({"name":"token","value":"1276a799-80ae-4840-90ef-6eb659015d6c"})
driver.refresh()sleep(4)
driver.quit()
cookies失效的条件:–cookies绕过技术代码就需要更新cookies值 否则不能登录。
1、手动退出登录
2、cookie已经超过有效期
注意,如果cookies失效 就需要重新获取cookies。
如果你们的项目cookies键值对存在多个cookies,add_cookies 也可以加多个:
driver.add_cookies({}) --第一个cookies
driver.add_cookies({}) --第二个cookies