使用cookie,我们可以不用输入账户名和密码,直接登陆系统
cookie的使用方法:
1 driver.manage().addCookie(new Cookie("name", "value"));
addCookie是添加一条cookie信息,这里是添加一个cookie对象,对象包括cookie的键值对;
我们打开www.baidu.com,并登陆百度首页,使用firebug查看页面的cookie信息,如下
其中BAIDUID和BDUSS这两条是登陆所对应的cookie信息,我们就需要两条就够了。
1 //添加登陆cookie(cookie对应的值已经被我省略) 2 driver.manage().addCookie(new Cookie("BAIDUID", "327……:FG=1")); 3 driver.manage().addCookie(new Cookie("BDUSS", "k0MzM……JTT1"));
还有个问题,就是添加cookie信息在必须是在载入页面(driver.get("http://www.baidu.com/"))后使用,添加完cookie后,需要刷新一下页面:
1 //刷新页面 2 dr.navigate().refresh();
完整代码@撞树桐:
1 import org.openqa.selenium.Cookie; 2 import org.openqa.selenium.WebDriver; 3 import org.openqa.selenium.firefox.FirefoxDriver; 4 5 public class BdCookie { 6 7 public static void main(String[] args) throws InterruptedException { 8 WebDriver dr = new FirefoxDriver(); 9 dr.get("http://www.baidu.com/"); 10 11 //添加登陆cookie 12 dr.manage().addCookie(new Cookie("BAIDUID", "327……=1")); 13 dr.manage().addCookie(new Cookie("BDUSS", "k0MzMzMG1JbS……wJTT1")); 14 15 //刷新页面 16 dr.navigate().refresh(); 17 18 Thread.sleep(5000); 19 dr.close(); 20 } 21 }
简单的整理一下代码:
1 import java.util.HashSet; 2 import java.util.Set; 3 4 import org.openqa.selenium.Cookie; 5 import org.openqa.selenium.WebDriver; 6 import org.openqa.selenium.firefox.FirefoxDriver; 7 8 public class BdCookie2 { 9 10 public static void main(String[] args) throws InterruptedException { 11 WebDriver driver = new FirefoxDriver(); 12 driver.get("http://www.baidu.com/"); 13 14 Set<Cookie> cookies = new HashSet<Cookie>(); 15 cookies.add(new Cookie("BAIDUID", "32……=1")); 16 cookies.add(new Cookie("BDUSS", "k0Mz……TT1")); 17 18 //添加cookie 19 addCookies(driver, cookies); 20 21 //刷新页面 22 driver.navigate().refresh(); 23 24 Thread.sleep(5000); 25 driver.close(); 26 } 27 28 public static void addCookies(WebDriver driver,Set<Cookie> cookies){ 29 if(cookies == null) return; 30 for (Cookie cookie : cookies) { 31 driver.manage().addCookie(cookie); 32 } 33 } 34 }