如何使用Selenium添加Cookie实现绕过登录流程-自动化测试
更新时间:2022-03-14 09:44:39 作者:多测师 浏览:409
有些简单的网站我们可以简单的send key来输入账户密码就可以登录,但是有很多网站需要验证码之类的就不太好用了,这时候就体现到了cookie登录的优点了。
创建demo.py
from selenium import webdriver
import time
import json
#填写webdriver的保存目录
driver = webdriver.Chrome('../chromedriver.exe')
#记得写完整的url 包括http和https
driver.get('https://www.baidu.com')
#程序打开网页后20秒内手动登陆账户
time.sleep(30)
with open('cookies.txt','w') as cookief:
#将cookies保存为json格式
cookief.write(json.dumps(driver.get_cookies()))
driver.close()
创建demo2.py
from selenium import webdriver
import time
import json
#填写webdriver的保存目录
driver = webdriver.Chrome()
#记得写完整的url 包括http和https
driver.get('https://www.baidu.com')
#首先清除由于浏览器打开已有的cookies
driver.delete_all_cookies()
with open('cookies.txt','r') as cookief:
#使用json读取cookies 注意读取的是文件 所以用load而不是loads
cookieslist = json.load(cookief)
for cookie in cookieslist:
driver.add_cookie(cookie)
# 刷新页面
driver.refresh()
解决Cookie时效性字段
from selenium import webdriver
import json
#填写webdriver的保存目录
driver = webdriver.Chrome('../chromedriver.exe')
#记得写完整的url 包括http和https
driver.get('https://www.baidu.com')
#首先清除由于浏览器打开已有的cookies
driver.delete_all_cookies()
with open('cookies.txt','r') as cookief:
#使用json读取cookies 注意读取的是文件 所以用load而不是loads
cookieslist = json.load(cookief)
# 方法1 将expiry类型变为int
for cookie in cookieslist:
#并不是所有cookie都含有expiry 所以要用dict的get方法来获取
if isinstance(cookie.get('expiry'), float):
cookie['expiry'] = int(cookie['expiry'])
driver.add_cookie(cookie)
driver.refresh()
import time
import json
#填写webdriver的保存目录
driver = webdriver.Chrome('../chromedriver.exe')
#记得写完整的url 包括http和https
driver.get('https://www.baidu.com')
#程序打开网页后20秒内手动登陆账户
time.sleep(30)
with open('cookies.txt','w') as cookief:
#将cookies保存为json格式
cookief.write(json.dumps(driver.get_cookies()))
driver.close()
以上内容为大家介绍了自动化测试中的如何使用Selenium添加Cookie实现绕过登录流程,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/