selenium 怎么更新cookie某个value
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium 怎么更新cookie某个value相关的知识,希望对你有一定的参考价值。
参考技术A a.获得cookie信息:driver。get_cookies()1 #coding=utf-8
2 from selenium import webdriver
3 import time
4
5 driver=webdriver.Ie()
6 driver.get("http://www.youdao.com")
7
8 cookie=driver.get_cookies() #获取当前页的cookie
9 print cookie
10 driver.quit()
b.对cookie操作
1 #coding=utf-8
2 from selenium import webdriver
3 import time
4
5 driver=webdriver.Ie()
6 driver.get("http://www.youdao.com")
7
8 #向cookie中添加信息
9 driver.add_cookie('name':'key-aaaaaaa','value':'value-bbbb')
10
11 for cookie in driver.get_cookies():
12 print "%s -> %s" % (cookie['name'],cookie['value'])
13 #删除特定cookie
14 driver.delete_cookie("CookieName")
15 #删除所有cookie
16 driver.delete_all_cookies()
17 time.sleep(3)
18 driver.close()
1.显示网页记录的所有cookies
driver.get_cookies()
2.字典推导式
selenium webdriver处理浏览器Cookie
有时候我们需要验证浏览器中是否存在某个cookie,因为基于真实的cookie 的测试是无法通过白盒和
集成测试完成的。WebDriver 提供了操作Cookie 的相关方法可以读取、添加和删除cookie 信息。
WebDriver 操作cookie 的方法有:
? getCookies() 获得所有cookie 信息
? addCookie(cookie_dict) 添加cookie,必须有name 和value 值
? deleteAllCookies() 删除所有cookie 信息
? deleteCookieNamed(String name)。删除name 这个cookie
? getCookieNamed(String name)。返回特定name 的cookie 值
下面通过getCookies()来获取当前浏览器的cookie 信息。
package com.mypro.jase; import java.util.Set; import org.openqa.selenium.Cookie; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class cookie { public static void main(String[] args){ WebDriver driver = new ChromeDriver(); driver.get("http://www.youdao.com"); //获得cookie Set<Cookie> coo = driver.manage().getCookies(); //打印cookie System.out.println(coo); driver.quit(); } }
执行结果:
>>> ================================ RESTART ================================
>>>
[JSESSIONID=abc6Pheyjzl7M_fdLPy3u;
path=/;
domain=www.youdao.com,
[email protected];
expires=星期四, 01 六月2045 10:08:10 CST;
path=/;
domain=.youdao.com]
通过打印结果可以看出,cookie 是以字典的形式进行存放的,知道了cookie 的存放形式,那么我们就
可以按照这种形式向浏览器中写入cookie 信息。
import java.util.Set; import org.openqa.selenium.Cookie; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class cookie { public static void main(String[] args){ WebDriver driver = new ChromeDriver(); driver.get("http://www.youdao.com"); Cookie c1 = new Cookie("name", "key-aaaaaaa"); Cookie c2 = new Cookie("value", "value-bbbbbb"); driver.manage().addCookie(c1); driver.manage().addCookie(c2); //删除所有cookie driver.manage().deleteAllCookies(); //获得cookie Set<Cookie> coo = driver.manage().getCookies(); //打印cookie System.out.println(coo); driver.quit(); } }
执行结果:
>>> ================================ RESTART ================================
>>>
[name=key-aaaaaaa;
path=/;
domain=www.youdao.com,
value=value-bbbbbb;
path=/;
domain=www.youdao.com]
从打印结果可以看到最后一条cookie 信息是在脚本执行过程中通过addCookie()方法添加的。通过遍
历得到的所cookie 信息从而找到key 为“name”和“value”的特定cookie 的value。
那么在什么情况下会用到cookie 的操作呢?例如开发人员开发一个功能,当用户登录后,会将用户的
用户名写入浏览器cookie,指定的key 为“username”,那么我们就可以通过getCookies() 找到useranme,
打印vlaue,如果找不到username 或对应的value 为空,那么说明保存浏览器的cookie 是有问题的。
deleteAllCookies()的使用也很简单,前者通过name 值到一个特定的cookie 将其删除,后者直接删除浏览器中的所有cookies()信息。
以上是关于selenium 怎么更新cookie某个value的主要内容,如果未能解决你的问题,请参考以下文章
Java+selenium之WebDriver的cookie,等待等高级操作
selenium自动化---获取登录成功后,浏览器中存储的cookie