使用 cookie 绕过验证码这种方式前提是必须要有长时间保存 cookie 的功能,比如登录时会有勾选项"保存本次登录信息",“下次自动登录”,"记住我"等。
当你勾选类似的选项后,登录成功后服务器会要求浏览器将登录信息存储你到 cookie。我们就可以从浏览器 cookie 中获取储存的信息,添加到测试过程中的浏览器中,以达到绕过登录的目的。
还是以 showdoc 为例,showdoc 是默认保存 cookie 的。
首先查看登录前的 cookie 信息:
这里注意 domain, 因为会有很多百度相关的统计。只看你当前系统相关域名的 cookie。
登录后再查看一次 cookie 信息:
观察登录前后的 cookie,这里 token 很像是我们要的。🤭
如果你分辨不清楚,那就把登录前后有差异,并且是当前系统域名下的 cookie 全部加进去。
得到想要的 cookie 信息后,就可以使用 WebDriver 中的 add_cookie()
方法添加 cookie 了。
接下来的步骤就简单了:
-
进入系统任意页面
-
添加 cookie
-
刷新页面
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.showdoc.cc')
time.sleep(1) # => 等1秒,看看未登录的状态
# 以字典形式传入cookie,name的值对应浏览器cookie中的name列,value值对应cookie中的value列
driver.add_cookie({'name': 'cookie_token', 'value': '073fe7ab...cc1bc1ad'})
# 刷新页面,相当于重新发送请求
# 此时会携带cookie,所以刷新后的页面会以登录后的状态呈现
driver.refresh()
# 观察一下,然后退出
time.sleep(5)
driver.quit()
以上面的方式就可以实现绕过登录,不过这要注意以下两点:
-
生成 cookie 的账号不能有退出操作,否则 cookie 会失效。
-
注意 cookie 的有效期(
Expires/Max-Age
列),可能需要定时更新 cookie
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
最后: 可以在公众号:自动化测试老司机 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!