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

1. 获取cookies并保存到文件

步骤:

① 打开CSDN的登录界面;

② 填写用户名和密码;

③ 新建文件txt;

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

代码:

  1. @Before
  2. public void Setup(){
  3. File chromeDriverPath = new File("D:\\Selenium\\webdriver\\chromedriver.exe");
  4. System.setProperty("webdriver.chrome.driver", chromeDriverPath.getAbsolutePath());
  5. webDriver = new ChromeDriver();
  6. }
  7.  
  8. @Test
  9. public void writeCookies() {
  10.  
  11. webDriver.get("https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn");
  12. webDriver.findElement(By.xpath("//*[@id=\"username\"]")).sendKeys("用户名");
  13. webDriver.findElement(By.xpath("//*[@id=\"password\"]")).sendKeys("密码");
  14.  
  15. if (webDriver.findElement(By.xpath("//*[@id=\"rememberMe\"]")).isSelected()){
  16. webDriver.findElement(By.xpath("//*[@id=\"rememberMe\"]")).click();
  17. }
  18.  
  19. webDriver.findElement(By.xpath("//*[@id=\"fm1\"]/input[6]")).click();
  20.  
  21. File cookieFile = new File("csdn.cookie.txt");
  22.  
  23. try {
  24. cookieFile.delete();
  25. cookieFile.createNewFile();
  26. FileWriter fileWriter = new FileWriter(cookieFile);
  27. BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
  28.  
  29. for (Cookie cookie:webDriver.manage().getCookies()){
  30. bufferedWriter.write((cookie.getName()+";"+
  31. cookie.getValue()+";"+
  32. cookie.getDomain()+";"+
  33. cookie.getPath()+";"+
  34. cookie.getExpiry()+";"+
  35. cookie.isSecure()));
  36. bufferedWriter.newLine();
  37. }
  38. bufferedWriter.flush();
  39. bufferedWriter.close();
  40. fileWriter.close();
  41. } catch (IOException e) {
  42. // TODO Auto-generated catch block
  43. e.printStackTrace();
  44. }
  45.  
  46. webDriver.quit();
  47. }

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

步骤:

① 打开CSDN界面;

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

③  打开CSDN界面。

代码:

  1.   @Test
  2. public void getCookies(){
  3. BufferedReader bufferedReader;
  4. webDriver.get("https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn");
  5.  
  6. try {
  7. File cookieFile = new File("csdn.cookie.txt");
  8. FileReader fileReader = new FileReader(cookieFile);
  9. bufferedReader = new BufferedReader(fileReader);
  10.  
  11. String line;
  12.  
  13. while ((line = bufferedReader.readLine()) != null){
  14. StringTokenizer stringTokenizer = new StringTokenizer(line, ";");
  15. while (stringTokenizer.hasMoreTokens()){
  16.  
  17. String name = stringTokenizer.nextToken();
  18. String value = stringTokenizer.nextToken();
  19. String domain = stringTokenizer.nextToken();
  20. String path = stringTokenizer.nextToken();
  21. Date expiry = null;
  22. String dt;
  23.  
  24. if (!(dt = stringTokenizer.nextToken()).equals("null")){
  25. expiry = new Date(dt);
  26. }
  27.  
  28. boolean isSecure = new Boolean(stringTokenizer.nextToken()).booleanValue();
  29. Cookie cookie = new Cookie(name, value,domain,path,expiry,isSecure);
  30. webDriver.manage().addCookie(cookie);
  31. }
  32. }
  33. } catch (Exception e) {
  34. // TODO Auto-generated catch block
  35. e.printStackTrace();
  36. }
  37.  
  38. webDriver.get("http://blog.csdn.net/");
  39.  
  40. }

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

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

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. 数据结构之网络流入门(Network Flow)简单小节

    网络流的相关定义: 源点:有n个点,有m条有向边,有一个点很特殊,只出不进,叫做源点. 汇点:另一个点也很特殊,只进不出,叫做汇点. 容量和流量:每条有向边上有两个量,容量和流量,从i到j的容量通常用 ...

  2. 精通 JS正则表达式(转)

    转载的目的在于:增加一些自己看不懂的解释.内容只加不改,灰色字体是自己寻找并增加的. 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式 ...

  3. (转载)oracle的v$sqlarea表

    原文摘自:http: [V$SQLAREA]  本视图持续跟踪所有shared pool中的共享cursor,在shared pool中的每一条SQL语句都对应一列.本视图在分析SQL语句资源使用方面 ...

  4. 奇舞js笔记——第0课——如何写好原生js代码

    摘要 1.好的代码职责要清晰,javscript不要用来操作样式: 2.API要设计的合理:通用性,适度的抽象(数据抽象,过程抽象),可扩展性: 3.效率问题:用好的.合适的算法(前端程序员要把自己当 ...

  5. 搭建ES6运行环境

    当ES5还没有完全普及时,ES6就接踵而来了,2015年6月17日,ECMAScript 6发布正式版本,即ECMAScript 2015,我们也简称它为ES6或ES2015.在发布之后的将近一年内, ...

  6. Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging

    通过将浏览器所在客户端的本地应用注册为Chrome浏览器扩展的“本地消息主机(native messaging host)”,Chrome浏览器扩展还可以与客户端本地应用之间收发消息. 客户端的本地应 ...

  7. 【Stack Overflow -- 原创加工、原创整理、生产实战】-- 深度复制

    一.说明 1.本程序的核心代码不是我原创的,是我在Stack Overflow上搜集后加工出来的,原作者已忘记了~ 2.这段程序是我在上海携程(2014年左右)上班时整理并在生产环境应用的,先后经历了 ...

  8. spring 框架的xml文件如何读取properties文件数据

    spring 框架的xml文件如何读取properties文件数据 第一步:在spring配置文件中 注意:value可以多配置几个properties文件 <bean id="pro ...

  9. [基础架构]PeopleSoft都有哪些进程运行在进程服务器上

    PSPRCSRV:(PSPRCSRV.EXE) 该进程负责启动所有服务进程. 每隔15s,该进程就会去看进程调度器中是否有需要运行的进程请求.如果没有需要运行的则sleep15s,然后再次检查. 如果 ...

  10. Android之圆点导航的两个案例(ViewPager)

    案例一效果: 布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ...