Selenium操作浏览器Cookie

2019年6月5日 186 次阅读 0 条评论 0 人点赞

写在前面

Cookie通常来说是服务器发送给浏览器的数据组。

Cookie用于辨别用户身份,访问服务器时保持登录状态等功能。

有时我们需要获取浏览器中的cookie,用来验证存储的cookie是否正确。

Selenium WebDriver提供了操作Cookie的相关方法,可以获取、删除和添加cookie信息。

WebDriver操作cookie能实现的目标:

1.能够遍历输出cookie信息中的所有key和value;

2.能够删除指定的cookie对象;

3.能够删除所有的cookie对象;

4.能够实现自定义添加cookie值;

实现以上功能WebDriver操作cookie方法:

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

delete_all_cookies(): 删除所有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的选项,目前支持的选项包括“路径”,“域”。

接下来通过具体的例子,分别实现以上功能:

获取全部cookie

#control_Cookies.py
#www.testclass.cn
#Altumn

from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://www.sogo.com")
driver.maximize_window()
driver.implicitly_wait(10)

Cookies=driver.get_cookies()
print(Cookies)

'获取页面下的全部Cookies,并且输出name、value对应的属性值'
for Cookie in Cookies:
    print("%s-->>%s" % (Cookie["name"], Cookie["value"]))

获取指定cookie

#control_Cookies.py
#www.testclass.cn
#Altumn

from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://www.sogo.com")
driver.maximize_window()
driver.implicitly_wait(10)

Cookies=driver.get_cookies()
print(Cookies)
'获取页面下的全部Cookies,并且输出name、value对应的属性值'
for Cookie in Cookies:
    print("%s-->>%s" % (Cookie["name"], Cookie["value"]))

'获取指定name的cookie。例:name=SUV'
Cookie_one = driver.get_cookie("SUV")
print("%s-->>%s" % (Cookie_one["name"], Cookie_one["value"]))

删除全部cookie

#control_Cookies.py
#www.testclass.cn
#Altumn

from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://www.sogo.com")
driver.maximize_window()
driver.implicitly_wait(10)

Cookies=driver.get_cookies()
print(Cookies)
'一次性删除全部cookies'
driver.delete_all_cookies()
'删除后重新获取cookies'
Cookies_new = driver.get_cookies()
print ("*************删除全部值后的cookies*************")
print (Cookies_new)

删除指定cookie

#control_Cookies.py
#www.testclass.cn
#Altumn

from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://www.sogo.com")
driver.maximize_window()
driver.implicitly_wait(10)

Cookies=driver.get_cookies()
print(Cookies)
'通过cookie的name属性值,删除name值为"SUV"的cookie信息'
driver.delete_cookie("SUV")
'获取删除name值为"SUV"后的cookie信息'
cookies_new=driver.get_cookies()
print ("*************删除name值后的cookies*************")
print (cookies_new)

添加自定义cookie

#control_Cookies.py
#www.testclass.cn
#Altumn

from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://www.sogo.com")
driver.maximize_window()
driver.implicitly_wait(10)
Cookies=driver.get_cookies()
print ("*************原来的cookies************")
print(Cookies)

'添加自定义cookies信息'
driver.add_cookie({"name":"testclass","value":"www.testclass.cn"})
'查看添加的cookies信息'
cookies_new = driver.get_cookie("testclass")
print ("*************添加自定义值后的cookies************")
print(cookies_new)

温馨提示:欢迎加入软件测试学习交流QQ群:670250199

风里云里,我在这里等你!

文章评论(0)