描述:登录CSDN,将登录信息cookies保存到文件,再次打开网页时,直接利用文件中的数据登录。

1. 获取cookies并保存到文件

步骤:

① 打开CSDN的登录界面;

② 填写用户名和密码;

③ 新建文件txt;

④ 获取cookies,并将cookies保存到先前新建的文件中。

代码:

    @Before
public void Setup(){
File chromeDriverPath = new File("D:\\Selenium\\webdriver\\chromedriver.exe");
System.setProperty("webdriver.chrome.driver", chromeDriverPath.getAbsolutePath());
webDriver = new ChromeDriver();
} @Test
public void writeCookies() { webDriver.get("https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn");
webDriver.findElement(By.xpath("//*[@id=\"username\"]")).sendKeys("用户名");
webDriver.findElement(By.xpath("//*[@id=\"password\"]")).sendKeys("密码"); if (webDriver.findElement(By.xpath("//*[@id=\"rememberMe\"]")).isSelected()){
webDriver.findElement(By.xpath("//*[@id=\"rememberMe\"]")).click();
} webDriver.findElement(By.xpath("//*[@id=\"fm1\"]/input[6]")).click(); File cookieFile = new File("csdn.cookie.txt"); try {
cookieFile.delete();
cookieFile.createNewFile();
FileWriter fileWriter = new FileWriter(cookieFile);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); for (Cookie cookie:webDriver.manage().getCookies()){
bufferedWriter.write((cookie.getName()+";"+
cookie.getValue()+";"+
cookie.getDomain()+";"+
cookie.getPath()+";"+
cookie.getExpiry()+";"+
cookie.isSecure()));
bufferedWriter.newLine();
}
bufferedWriter.flush();
bufferedWriter.close();
fileWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} webDriver.quit();
}

2. 读取先前文件中保存的信息,将信息添加到新建的cookie中,将新建的cookie添加到浏览器中,实现自动登陆。

步骤:

① 打开CSDN界面;

② 从保存的文件中取出登陆的信息,添加到cookie中,将cookie添加到浏览器中;

③  打开CSDN界面。

代码:

  @Test
public void getCookies(){
BufferedReader bufferedReader;
webDriver.get("https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn"); try {
File cookieFile = new File("csdn.cookie.txt");
FileReader fileReader = new FileReader(cookieFile);
bufferedReader = new BufferedReader(fileReader); String line; while ((line = bufferedReader.readLine()) != null){
StringTokenizer stringTokenizer = new StringTokenizer(line, ";");
while (stringTokenizer.hasMoreTokens()){ String name = stringTokenizer.nextToken();
String value = stringTokenizer.nextToken();
String domain = stringTokenizer.nextToken();
String path = stringTokenizer.nextToken();
Date expiry = null;
String dt; if (!(dt = stringTokenizer.nextToken()).equals("null")){
expiry = new Date(dt);
} boolean isSecure = new Boolean(stringTokenizer.nextToken()).booleanValue();
Cookie cookie = new Cookie(name, value,domain,path,expiry,isSecure);
webDriver.manage().addCookie(cookie);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} webDriver.get("http://blog.csdn.net/"); }

结果:状态直接变成登录状态。

(个人学习笔记,不对之处,多多指正,谢谢!)

Selenium+java操作浏览器cookies的更多相关文章

  1. [Selenium] 操作浏览器 Cookies

    WebDriver 提供了一系列 Cookies 的操作来获取.填写.删除 Cookies 的方法,节省了多次在登陆页面的查找元素并填写登录信息的时间. 1)获取 Cookies ,并保存到文件中以备 ...

  2. java selenium (十) 操作浏览器

    本篇文章介绍selenium 操作浏览器 阅读目录 浏览器最大化 前进,后退, 刷新 public static void testBrowser(WebDriver driver) throws E ...

  3. Selenium+java - 操作滚动条

    前言 在写脚本时,总会遇到一种情况,就是当滚动拉倒最下面了,表单或者下拉框.按钮这些元素未在当前页面展示,而webdriver提供的方法都是操作当前页面可见的元素,这时我们使用JavaScript操作 ...

  4. selenium操作浏览器cookies

    package test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; imp ...

  5. Selenium webdirver Java 操作浏览器

    打开浏览器 HtmlUnit Driver 优点:不会实际打开浏览器,运行速度很快. 缺点:对JavaScript的支持不够好,有时会捕获不到页面元素. 使用:WebDriver driver=new ...

  6. Selenium Java关闭浏览器

    在学习selenium的过程中发现一个问题,各种博客/教程都是教人用selenium的quit()和close()方法关闭浏览器. 但这不是我要的结果.这两个方法的前提是,用webdriver打开浏览 ...

  7. Selenium+java - Edge浏览器启动

    写在前面 随着win10系统的普及,使得Edge浏览器得到广泛使用.从自动化角度看,自然微软也一直不断提供着支持服务,系统版本更新,对应的Edge浏览器版本也在更新,当然对应的驱动版本也会发生变化. ...

  8. selenium+python操作浏览器

    前面已经把环境搭建好了,下面我们就正式学习selenium的webdriver框架.本篇主要讲如何用Python调用webdriver框架的API,对浏览器做一些基本的操作,如打开.前进.后退.刷新. ...

  9. Selenium webdirver 操作浏览器

    打开浏览器 HtmlUnit Driver 优点:不会实际打开浏览器,运行速度很快. 缺点:对JavaScript的支持不够好,有时会捕获不到页面元素. 使用:WebDriver driver=new ...

随机推荐

  1. 剑指offer 练习题目

    #include <iostream> #include<vector> #include <stack> #include<map> #include ...

  2. ListView 介绍

    1. 通过继承Activity实现ListView 1.1 在XML布局文件中实现一个ListView <ListView android:layout_width="wrap_con ...

  3. panic和recover的使用规则

    转自个人博客 chinazt.cc 在上一节中,我们介绍了defer的使用. 这一节中,我们温习一下panic和recover的使用规则. 在golang当中不存在tye ... catch 异常处理 ...

  4. selenium 环境搭建

    使用selenium + python来搭建环境的步骤: 1. 下载 python 的版本,常用到的有 2.7 和 3.6 2. 下载 selenium 的版本,通过命令进行下载. pip insta ...

  5. Linux实战教学笔记13:定时任务补充

    第十三节 定时任务补充 标签(空格分隔): Linux实战教学笔记 ---[更多资料点我查看][1] 1,生产环境常用Crontab专业实例 1.1书写crontab定时任务多个基本要领 1.1.1 ...

  6. 构建混合应用方式之WCF中继

    使用VPN或者ER服务建立云服务和本地服务网络通道来搭建混合应用的方式,需要网络设备的配合和比较复杂的网络配置,所以不是特别的方便.如果是不希望对本地网络环境做修改,而只是服务层面的混合,那么可以使用 ...

  7. redis内存消耗详解

    Redis所有的数据都存在内存中,相对于廉价的硬盘,内存资源还是比较昂贵的,因此如何高效利用redis内存变得非常重要. 内存消耗分析 管理内存的原理和方法 内存优化技巧 一.内存消耗 理解redis ...

  8. Octopus——excel导入导出工具

    Octopus Octopus是一个简易的Excel导入导出工具.目前主要就两个功能: 导入:将excel中一行数据转换为指定的java对象,并通过指定的正则表达式检查合法性. 导出:按照给定的xml ...

  9. 使用Webpack加速Vue.js应用的4种方式

    Webpack是开发Vue.js单页应用程序的重要工具. 通过管理复杂的构建步骤,你可以更轻松地开发工作流程,并优化应用程序的大小和性能. 其中介绍下面四种方式: 单个文件组件 优化Vue构建 浏览器 ...

  10. voa 2015 / 4 / 26

    Now, Words and Their Stories, a VOA Special English program about American expressions. I'm Rich Kle ...