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()信息。

时间: 2024-10-10 21:17:30

selenium webdriver处理浏览器Cookie的相关文章

[乐意黎原创] 使用Selenium webdriver+Firefox浏览器来登录新浪微博

有个需求测试,需要用webdriver 登录到新浪微博,由于个人比较善长 Webdriver,于是采取了Webdriver+FireFox来实现. 配置环境 a. 必须首先在Eclipse里加载 selenium webdriver 包[[此处我导入的是 selenium-server-standalone-2.45.0.jar] b. 以及安装了 firefox 浏览器. 此篇文章中我用了本人的新浪微博地址来做测试,大家 可以更换为自己的新浪微博帐号和密码. 文中为部分主要的Java 代码.

Java+selenium如何清理浏览器Cookie

一.场景:在未注销系统切换不同账号登录系统下,登录会有浏览器缓存,导致登录时间异常缓慢.跟开发浏览器缓存处理机制有关系. 二.解决方法: 获取浏览器Cookie,在Login方法前增加清除缓存的代码. import org.openqa.selenium.Cookie; //获得cookie Set<Cookie> coo = driver.manage().getCookies(); //打印Cookie logger.info(coo); //清除所有的缓存 driver.manage()

python selenium webdriver处理浏览器滚动条

用键盘右下角的UP,DOWN按键来处理页面滚动条 这种方法很灵活用起来很方便!!!! from selenium import webdriver import time from selenium.webdriver.common.keys import Keys #访问百度 driver=webdriver.Chrome() driver.get("http://www.baidu.com") #搜索 driver.find_element_by_id("kw"

selenium自动化操作浏览器(火狐)

from selenium import webdriver import time # import selenium # print(help(selenium)) # selenium 三方库,可以实现让浏览器完成自动化的操作 # http://chromedriver.storage.googleapis.com/index.html # http://npm.taobao.org/mirrors/chromedriver/ # 安装三大浏览器驱动driver # 1.chromedri

Selenium WebDriver 处理cookie

在使用webdriver测试中,很多地方都使用登陆,cookie能够实现不必再次输入用户名密码进行登陆. 首先了解一下Java Cookie类的一些方法. 在jsp中处理cookie数据的常用方法: getDomain():返回cookie的域名. getMaxAge():返回cookie的存活时间 getName():返回cookie的名字 getPath():返回cookie适用的路径 getSecure():如果浏览器通过安全协议发送Cookie将返回true值,如果浏览器使用标准协议刚返

Selenium WebDriver使用IE浏览器(转)

转自:http://smilejay.com/2012/09/selenium-webdriver-with-ie/ 如下的Java代码是打开IE浏览器,然后在Google中搜索“smilejay”关键字. [Copy to clipboard] JAVA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 package com.sele

Selenium Webdriver重新使用已打开的浏览器实例

本文中的样例均使用SoapUI ,关于SoapUI+Webdriver 的配置,请看上一篇: http://blog.csdn.net/wwwqjpcom/article/details/51174664 我弄这个的本意是为了在SoapUI中更好地编写自动化用例,因为我的业务流程有的很长,有7-8个页面. 我想把代码不集中在一个Groovy 脚本里,想在第二个脚本中继续使用第一个脚本中打开的浏览器.这样便于 维护和定位问题. 也还有一种情况是我打开了浏览器,,操作了系统到某一个界面后,我写了这个

Selenium WebDriver使用IE浏览器

IEdriver插件下载地址:http://www.cr173.com/soft/195732.html 1.配置系统环境变量. 我的电脑-->右键-->属性-->高级系统设置-->环境变量-->系统变量-->path 注:先把IEDriverServer.exe放在C:\Program Files\Internet Explorer根目录里,再把这个路径放到path里. 2.关闭IE的启用保护模式 打开IE-->设置-->Internet选项-->安

selenium webdriver 启动火狐、谷歌、IE浏览器及插件下载地址

各个浏览器步骤差不多,先下载驱动,解压后把 exe 文件放到 Python 目录下即可: 以IE浏览器为例: 1. 先确定 selenium 版本 打开 cmd,输入命令:pip show selenium,可以查看到版本号为3.141.0 2. 下载对应的 IE 浏览器驱动 下载地址:http://selenium-release.storage.googleapis.com/index.html,根据 selenium 对应版本进行下载: 选择32位或者64位下载: 下载并解压后,将其放到