|
在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());
}