【Selenium自动化测试】操作Cookie

所谓"cookie"数据是指某些网站为了辨别用户身份,储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。通俗来讲就是指缓存数据,包括用户名、密码、注册账户、手机号等公民个人信息。
在Web自动化测试时,我们也经常需要对其进行操作。WebDriver 提供了操作Cookie 的相关方法,可以读取、添加和删除Cookie。

  • get_cookies():获得所有Cookie。
  • get_cookie(name):返回字典中key 为“name”的Cookie。
  • add_cookie(cookie_dict):添加 Cookie。
  • delete_cookie(name,optionsString):删除名为OpenString 的Cookie。
  • delete_all_cookies():删除所有Cookie。

下面演示获取Cookie的例子:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

cookie = driver.get_cookies()
print(cookie)

输出结果:

[{'domain': '.baidu.com', 'expiry': 1710999942, 'httpOnly': False, 'name': 'ZFY', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': '5TDf3q2vQLOhtOlIeMreqw:BNA:BJez0dmV:BUyJhfE7Bc:C'}, {'domain': '.baidu.com', 'expiry': 1710999942, 'httpOnly': False, 'name': 'BAIDUID_BFESS', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': 'E2AC53CFF73B1CAAC114CB9B0640C564:FG=1'}, {'domain': '.baidu.com', 'expiry': 1679550342, 'httpOnly': False, 'name': 'BA_HECTOR', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': '88ak20242h842k6k0l2h0k471i1l5g71m'}, {'domain': '.baidu.com', 'httpOnly': False, 'name': 'H_PS_PSSID', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': '36548_38411_38113_38345_38308_37861_38172_38289_37934_38429_38315_38382_38285_26350_37881'}, {'domain': '.baidu.com', 'expiry': 1710999942, 'httpOnly': False, 'name': 'BAIDUID', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': 'E2AC53CFF73B1CAAC114CB9B0640C564:FG=1'}, {'domain': '.baidu.com', 'expiry': 1714023942, 'httpOnly': False, 'name': 'BIDUPSID', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': 'E2AC53CFF73B1CAA7D819DBC1B3E4687'}, {'domain': '.baidu.com', 'expiry': 1714023942, 'httpOnly': False, 'name': 'PSTM', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': '1679463942'}, {'domain': 'www.baidu.com', 'expiry': 1680327942, 'httpOnly': False, 'name': 'BD_UPN', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': '12314753'}, {'domain': 'www.baidu.com', 'httpOnly': False, 'name': 'BD_HOME', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': '1'}]

通过add_cookie()方法添加cookie,再遍历打印key为name和value的cookie查看是否添加成功

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.add_cookie({'name':'selenium3','value':'valuenmn'})

for cookie in driver.get_cookies():
    print("%s -> %s" %(cookie['name'],cookie['value']))

输出结果:

selenium3 -> valuenmn
ZFY -> SL9Gqd62FbUrYLZ5KzJyN8nxCCdvXdINkb4MaH:AK:Ams:C
BA_HECTOR -> 0o0l2001ah8g0kel00agak7e1i1kurp1n
BAIDUID_BFESS -> 03E0C411471493CF023574C6EBD7447E:FG=1
H_PS_PSSID -> 36551_38106_38348_38437_38404_37861_38174_38289_38236_38261_37934_38315_38285_26350_38423_37881
BAIDUID -> 03E0C411471493CF023574C6EBD7447E:FG=1
BIDUPSID -> 03E0C411471493CFB091860823A4D49C
PSTM -> 1679457144
BD_UPN -> 12314753
BD_HOME -> 1

由以上输出可以看到,我们自定义的cookie已成功添加。

通过delete_cookie()方法删除cookie

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

driver.delete_cookie("selenium3")

for cookie in driver.get_cookies():
    print("%s -> %s" %(cookie['name'],cookie['value']))

输出结果:

ZFY -> zpXBRMm1yB4Pxzboo68YIDBXz0oJPZX:Bcc4vmtwfgsU:C
BA_HECTOR -> 0900812lag0h25c42k24a46s1i1l8241m
BAIDUID_BFESS -> 97E47471DBB02832119466C2B2D8E867:FG=1
H_PS_PSSID -> 36546_38345_38359_38397_38171_38289_38377_38262_37928_38314_38383_38285_26350_37958_22158_37881
BAIDUID -> 97E47471DBB02832119466C2B2D8E867:FG=1
BIDUPSID -> 97E47471DBB0283262EA5338CEF36C06
PSTM -> 1679466564
BD_UPN -> 12314753
BD_HOME -> 1

由以上的输出可以看到刚刚添加的cookie已经被删除。

以上就是本期文章的所有内容,感谢观看,如果对您有帮助请点赞关注+收藏,一键三连,多谢支持!

你可能感兴趣的:(Selenium教程,自动化测试,selenium,chrome,python)