入住 CI 中国社区 登录
CodeIgniter 中国开发者社区 返回首页

rosemarry的个人空间 https://codeigniter.org.cn/forums/?39678 [收藏] [复制] [分享] [RSS]

日志

设置管理(Cookies/getCookies())

已有 813 次阅读2015-9-14 17:00 |个人分类:Selenium

 在Selenium2中,可以通过Options对象对测试进行设置,设置内容包括Cookie。超时时间和浏览器窗口。

  通过Cookies属性(适用于C#)/getCookies()方法(适用与Java)可以获取当前的Cookie集合,可以对其进行读取,添加和删除。

   一般在测试的时候很少会修改Cookie,而且大多数Cookie也是加密的,让人无从修改。只有在极少数特例中才会在测试中修改Cookie。

Cookie一般由5个部分组成,即名称,值所在域,路径和过期时间。

例如:先进入百度首页、通过Cookies属性(适用与C#)/getCookies()方法(适用于Java)获取当前的Cookie集合。打印Cookie集合的数量,然后将各个Cookie的所有属性打印出来。接着手动添加Cookie,再次打印出Cookie集合的数量,检查是否添加成功将刚才添加的Cookie删除,再次打印出Cookie集合的数量,检查是否成功删除Cookie。

Java代码:

package project1;

import org.openqa.selenium.*;

import org.openqa.selenium.WebDriver.*;

import org.openqa.selenium.firefox.*;

   public class Project1Class{

   public static void main(String[] args)

     //如果启动出现问题,可以使用System.setProperty指出firefox.exe的路径

    //System.setProperty("webdriver.firefox.bin","D:\\Program Files(x86)\\MozillaFirefox\\firefox.exe");

     WebDriver mainWindow = new FirefoxDriver();

     Navigation navigation = mainWindow.navigate();

     navigation.to(http://www.baidu.com);

     java.util.Set<Cookie> cookies = mainWindow.manage().getCookies();

    Cookie[] allCookies = new Cookie[cookies.size()];

    cookies.toArray(allCookies);

    //打印已有的cookie数量和内容

    System.out.println("当前cookie集合的数量为:"+cookies.size());

    System.out.println("");

    for(int i = 0;i<allCookies.length;i++)

{

    System.out.println("第"+(i+1)+"个cookie的各项属性为:");

   System.out.println("cookie名称 -"+allCookies[0].getName());

   System.out.println("cookie值 -"+allCookies[0].getValue());

   System.out.println("cookie所在域 -"+allCookies[0].getDomain());

   System.out.println("cookie路径 -"+allCookies[0].getPath());

   System.out.println("cookie过期时间 -"+allCookies[0].getExpiry());

   System.out.prntln("");

}

   java.util.Calendar calendar= java.util.Calendar.getInstance();

   canlendar.add(java.util.Canlendar.DATE,+1);  //获取前一天的日期

   java.util.Date date = canlendar.getTime();

   //添加cookie

  Cookie  newCookie = new Cookie("newcookie","新cookie值","baidu.com","",date);

  cookies.add(newCookie);

  System.out.println("新增的cookie的各项属性为:");

  System.out.println("cookie名称 -"+newCookie.getName());

  System.out.println("cookie值 -"+newCookie.getValue());

  System.out.println("cookie所在域 -"+newCookie.getDomain());

  System.out.println("cookie路径 -"+newCookie.getPath());

  Systm.out.println("cookie过期时间 -"+newCookie.getExpiry());

 System.out.println("");

 //添加后显示cookie数量

 System.out.println("添加cookie后,cookie集合的数量为:"+cookies.size());

 System.out.println("");

//删除cookie,先找新添加的cookie,然后删除

 allCookies = new Cookie[cookies.size()];

 cookies.toArray(allCookies);

 cookies.remove(allCookies[1]);

 //删除后显示cookie数量

 System.out.println("删除cookie后,cookie集合的数量为:"+cookies.size());

}


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 入住 CI 中国社区