web自动化测试绕过cookie实现登录

# 不输入用户名和密码,获取cookie实现登录
# 登录成功后,cookies里面会保存sessionid
# 将该sessionid添加到driver里面
# 注意: 1.selenium启动某个浏览器时,它启动的是一个全新的浏览器
#          没有带任何cookie,需要程序加载这些cookie
#        2.必须首先加载网站,这样Selenium 才能知道cookie 属于哪个网站,即使加载网站的行为对我们没任何用处
#        3.退出或者注销登录,sessionid失效,下次访问生成新的sessionid

# 方法一 手动获取sessionid
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://127.0.0.1:8000')  # 先加载网站
driver.maximize_window()
driver.add_cookie({'name': 'sessionid', 'value': '5u8jziskb2065vssla8ea5s7yvh2ucag'})
driver.get('http://127.0.0.1:8000')
driver.refresh()
time.sleep(5)
driver.quit()


# 方法二 代码自动获取cookie

driver1 = webdriver.Chrome()
driver1.maximize_window()
driver1.get('http://127.0.0.1:8000/api-auth/login/?next=/')
driver1.find_element_by_id('id_username').send_keys('admin')
driver1.find_element_by_id('id_password').send_keys('123')
driver1.find_element_by_id('submit-id-submit').click()
time.sleep(2)
save_cookie = driver1.get_cookies()  # 列表里面有两个字典cookie信息,一个是登录之前的,一个是登录之后的
print(save_cookie)
driver1.quit()
driver2 = webdriver.Chrome()
driver2.maximize_window()
# 必须首先加载网站,这样selenium才知道cookie是属于哪个网站的
driver2.get('http://127.0.0.1:8000/api-auth/login/?next=/')
print(driver2.get_cookies())
driver2.delete_all_cookies()  # 一旦加载网站,即使没登录,也会产生一个cookie,需要删除cookie
for cookie in save_cookie:
    driver2.add_cookie(cookie) # 添加driver1登录成功之后的cookie

driver2.get('http://127.0.0.1:8000')
print(driver2.get_cookies())
time.sleep(3)
driver2.quit()

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值