Web自动化测试:对cookie的操作
2021-01-28 08:13
标签:用户 mamicode end ssid dom 多个 冲突 通过 图片 关于cookie的方法和使用 1.按名称获取单个cookie。如果找到则返回cookie,否则返回None driver.get_cookie(name) name: 单个的cookie名称 2.返回一组字典,对应于当前会话中可见的cookie。 driver.get_cookies() 3.在当前会话中添加cookie driver.add_cookie(cookie_dict) cookie_dict: 包含单个cookie信息的字典 name:cookie名称 value:cookie名称对应的值 domain:服务器域名 expiry:Cookie有效终止日期 path:Web服务器中可获取服务器设置Cookie的页面路径 httpOnly:防脚本***设置 secure:当此值为True时,表示只能通过https传输cookie,当为False时表示可以通过http读取传输cookie 4.删除会话范围内的所有cookie。 driver.delete_all_cookies() 5.删除具有给定名称的单个cookie driver.delete_cookie(name) name: 单个cookie的名称 使用cookie时的一些注意事项 2、进入网站后,浏览器会自动生成一个cookie,如果运行add_cookie()方法冲突或者失败,可以尝试先删除所有cookie再添加 3、使用add_cookie()方法中,每次只能添加一个cookie,也就是单个cookie字典,所以代码中需要循环插入 4、使用add_cookie()方法中,传入的cookie字典里domain字段,谷歌浏览器需要填写,如果是火狐浏览器则不用填写。 实例演示 代码示例: from selenium import webdriver # 第一个浏览器来进行登录,然后记录登录后的cookie # 第二个新打开的浏览器用来添加cookie # 循环赋值添加cookie driver.get("https://www.fhyx.com") Web自动化测试:对cookie的操作 标签:用户 mamicode end ssid dom 多个 冲突 通过 图片 原文地址:https://blog.51cto.com/14645850/2507657
如图所示,通过F12查看浏览器所存储的cookie,一个网站存储的cookie有多个,每个cookie都有Nmae、Value、Domain等属性,我们在实际使用webdriver调用的时候,每条cookie存储为字典格式。
1、使用add_cookie()方法前,应该先进入这个网站的网址中,才能添加cookie,否则无法添加成功
这里我们思路是,先登录一个网站后获取cookie,然后打开新的浏览器进入同一个网站,写入cookie后看是否已经是登录状态,由于账号密码的私密性,这次的实例代码中我隐藏了账号密码信息。
from time import sleep
driver = webdriver.Chrome()
driver.get("https://www.fhyx.com/account/login.html")
sleep(3)
driver.find_element_by_id("LoginForm_username").send_keys("userName")
driver.find_element_by_id("LoginForm_password").send_keys("passWord")
# 手动在命令行中输入验证码
code = input("验证码是:")
driver.find_element_by_id("LoginForm_code").send_keys(code)
sleep(1)
driver.find_element_by_xpath("//button[text()=‘登 录‘]").click()
sleep(3)
cookie_login = driver.get_cookies()
print("登陆后获取的cookie %s" % cookie_login)
driver2 = webdriver.Chrome()
driver2.get("https://www.fhyx.com")
sleep(2)
# driver2.delete_all_cookies()
for cookie in cookie_login:
cookie_list = {
‘domain‘: ‘.fhyx.com‘,
‘name‘: cookie["name"],
‘value‘: cookie["value"],
"expires": "",
‘path‘: ‘/‘,
‘httpOnly‘: False,
‘HostOnly‘: False,
‘Secure‘: False,
}
print("添加cookie: %s : %s" % (cookie["name"], cookie["value"]))
driver2.add_cookie(cookie_list)
sleep(1)
# 获取单个cookie
cookie_id = driver2.get_cookie("PHPSESSID")
print("获取单个cookie:PHPSESSID:%s" % cookie_id)
# 获取所有cookie
cookie_all = driver2.get_cookies()
print("已经添加的cookie个数 %s" % len(cookie_all))
# 删除单个cookie
driver.delete_cookie("PHPSESSID")
print("删除PHPSESSID后查询此字段,结果: %s" % driver.get_cookie("PHPSESSID"))
# 删除所有cookie(此时第一个浏览器cookie失效)
driver.delete_all_cookies()
print("全部删除后的cookie: %s " % driver.get_cookies())
输出结果:
下一篇:HTML
文章标题:Web自动化测试:对cookie的操作
文章链接:http://soscw.com/index.php/essay/48136.html