Web自动化测试:对cookie的操作

Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。在自动化测试过程中,我们如果想要进行免登陆操作的话,可以通过写入cookie的方式来实现,需要注意的是,网站cookie有时效性,对于关闭浏览器后失效的临时cookie网站来说,无法使用cookie来实现免登陆。接下来具体看一看UI自动化中如何对网站cookie进行操作。

关于cookie的方法和使用
如图所示,通过F12查看浏览器所存储的cookie,一个网站存储的cookie有多个,每个cookie都有Nmae、Value、Domain等属性,我们在实际使用webdriver调用的时候,每条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时的一些注意事项
1、使用add_cookie()方法前,应该先进入这个网站的网址中,才能添加cookie,否则无法添加成功

2、进入网站后,浏览器会自动生成一个cookie,如果运行add_cookie()方法冲突或者失败,可以尝试先删除所有cookie再添加

3、使用add_cookie()方法中,每次只能添加一个cookie,也就是单个cookie字典,所以代码中需要循环插入

4、使用add_cookie()方法中,传入的cookie字典里domain字段,谷歌浏览器需要填写,如果是火狐浏览器则不用填写。

实例演示
这里我们思路是,先登录一个网站后获取cookie,然后打开新的浏览器进入同一个网站,写入cookie后看是否已经是登录状态,由于账号密码的私密性,这次的实例代码中我隐藏了账号密码信息。

在这里插入图片描述
代码示例:

from selenium import webdriver
from time import sleep

# 第一个浏览器来进行登录,然后记录登录后的cookie
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)

# 第二个新打开的浏览器用来添加cookie
driver2 = webdriver.Chrome()
driver2.get(“https://www.fhyx.com”)
sleep(2)

# 循环赋值添加cookie
# 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)

driver.get(“https://www.fhyx.com”)
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())
输出结果:在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Burp Suite是一款功能强大的Web应用程序渗透测试工具,可以用于发现Web应用程序中的各种漏洞。以下是使用Burp Suite进行Web漏洞测试的一般步骤: 1. 配置Burp Suite代理:启动Burp Suite,将浏览器的代理设置为Burp Suite的代理,这样Burp Suite就可以拦截和修改浏览器发送和接收的HTTP请求和响应。 2. 扫描目标网站:使用Burp Suite的扫描功能对目标网站进行扫描,以发现可能存在的漏洞。在扫描之前,可以使用Burp Suite的目标分析工具来收集有关目标网站的信息,例如目录结构、表单、Cookie等。 3. 进行手动测试:使用Burp Suite的代理和重放功能来手动测试目标网站。手动测试可以发现一些自动化扫描工具可能会错过的漏洞,例如业务逻辑漏洞和授权问题。 4. 使用Burp Suite的其他功能:除了代理、扫描和重放功能外,Burp Suite还提供了许多其他功能,例如Intruder、Repeater、Sequencer等。这些功能可以用于深入测试目标网站,并发现更多的漏洞。 5. 生成报告和修复问题:使用Burp Suite的报告功能生成漏洞报告,并将漏洞报告发送给开发人员或管理员。然后,跟踪漏洞修复进度,并验证修复后的漏洞是否得到了修复。 需要注意的是,使用Burp Suite进行Web漏洞测试需要一定的技术水平和经验。在进行测试之前,需要了解Web应用程序的工作原理和安全机制,以及各种常见的Web漏洞类型和攻击方法。同时,测试人员也需要遵守法律和道德规范,不得进行未经授权的测试。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值