Python+selenium 之操作Cookie

时间:2023-03-09 16:58:05
Python+selenium 之操作Cookie

在验证浏览器中cookie是否正确时,有时基于真实cookie的测试是无法通过白盒和集成测试进行的。Webdriver提供了操作Cookie的相关方法,可以读取,添加和删除cookie信息。

文本webdriver操作cookie()的方法:

get_cookie(): 获得所有cookie信息。

get_cookie(name):返回字典的key为name的cookie

add_cookie(cookie_dict):添加cookie。“cookie_dict”指字典对象,必须有name和value值。

delete_cookie(name,optionsString):删除cookie信息。“name”是要删除的cookie的名称。“optionsString”是该cookie的选项,目前支持的选项包括“路径”,“域”

delete_all_cookies():删除所有cookie信息。

获取cookie代码如下:

 from selenium import webdriver
driver = webdriver.Firefox()
# driver.get("http://member.rltxtest.xyz/login/login.html")
driver.get("http://www.youdao.com") # 获取cookie信息
cookies = driver.get_cookies()
# 打印获取的cookies信息
print(cookies) driver.quit()

添加cookie的代码:

 from selenium import webdriver

 driver = webdriver.Firefox ()
# driver.get("http://member.rltxtest.xyz/login/login.html")
driver.get ("http://www.youdao.com")
# 向cookie中name和value中添加回话信息
driver.add_cookie ({'name': 'key-aaaaaaa'}, {'value': 'value-bbbbb'}) # 遍历cookie中name和value信息并打印对应的信息,并包括添加对应的信息
for cookie in driver.get_cookies ():
print("%s->%s" % (cookie['name'], cookie['value'])) driver.quit ()

 记录cookie

  通过向浏览器中添加cookie可以绕过登录的验证码。在登录的时候勾选记住密码,当下次访问该网站时就默认处于登录状态了。记住密码功能其实就记录了浏览器的cookie中。通过webdriver来操作浏览器的cookie,可以通过add_cookie()方法将用户名密码写入浏览器cookie,当再次访问时,服务器将直接读取浏览器的cookie进行登录。

 from selenium import webdriver
import time driver = webdriver.Firefox()
driver.get("http://192.168.1.51/oneCard/login")
#将用户名密码写入浏览器cookie中
driver.add_cookie({'name':'username','value':'super'})
driver.add_cookie({'name':'password','value':'asd,./123*.'})
#再次访问网站,将会自动登录
driver.get("http://192.168.1.51/oneCard/login")