package test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File; import java.io.FileReader;
import java.io.FileWriter;
import java.util.Date; import java.util.StringTokenizer; import org.openqa.selenium.By;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import common.StartChrome; public class TestCookies { public static void main(String[] args) { TestCookies.getCookies();
TestCookies.addCookies(); }
public static void addCookies(){
BufferedReader bufferedReader;
// WebDriver driver = StartFireFox.start();
WebDriver driver=StartChrome.start();
driver.get("http://www.zhihu.com/"); try {
File cookieFile = new File("zhizhu.txt");
FileReader fr=new FileReader(cookieFile);
bufferedReader= new BufferedReader(fr);
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); driver.manage().addCookie(cookie); }
} } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(); driver.get("http://www.zhihu.com");
} public static void getCookies(){ //WebDriver driver = StartFireFox.start();
WebDriver driver=StartChrome.start();
driver.get("https://www.zhihu.com/#signin");
//填写用户信息,然后登陆 driver.findElement(By.name("account")).sendKeys("XXXX");
driver.findElement(By.name("password")).sendKeys("XXXX");
if(driver.findElement(By.name("remember_me")).isSelected()){
driver.findElement(By.name("remember_me")).click(); }
driver.findElement(By.className("sign-button")).click(); try{
Thread.sleep(3000);
File cookieFile = new File("zhizhu.txt");
cookieFile.delete();
cookieFile.createNewFile();
FileWriter fileWriter = new FileWriter(cookieFile);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
for (Cookie cookie : driver.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 (Exception ex){ ex.printStackTrace(); }
System.out.println("close brower");
driver.quit();
} }   

  重点保存cookies到一个文件,然后每次读取文件

selenium操作浏览器cookies的更多相关文章

  1. [Selenium] 操作浏览器 Cookies

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

  2. [Python爬虫]使用Selenium操作浏览器订购火车票

    这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Python爬取静态网页-斗 ...

  3. 每次用 selenium 操作浏览器都还原了 (比如没有浏览器历史记录)

    每次用 selenium 操作浏览器都还原了 (比如没有浏览器历史记录)

  4. selenium操作浏览器cookie方法

    /**     * 操作浏览器的cookie     */        @Test    public void testCookie()throws Exception{        drive ...

  5. selenium操作浏览器的前进和后退

    前进关键字:driver.forward() 后退关键字:driver.back() 测试对象:1.https://www.baidu.com/ 2.https://www.sogou.com/ 实例 ...

  6. 『心善渊』Selenium3.0基础 — 3、使用Selenium操作浏览器对象的基础API

    目录 1.导入Selenium库 2.创建浏览器对象 3.浏览器窗口大小设置 4.浏览器位置设置 5.请求访问网址 6.浏览器页面前进.后退和刷新 7.关闭浏览器 相比于高大上的各种Selenium进 ...

  7. 『心善渊』Selenium3.0基础 — 17、Selenium操作浏览器窗口的滚动条

    目录 1.为什么操作滚动条 2.Selenium如何操作滚动条 3.Selenium操作滚动条方法 4.操作滚动条示例 5.下拉至聚焦元素的位置 (1)实现步骤: (2)实现示例: 1.为什么操作滚动 ...

  8. 『心善渊』Selenium3.0基础 — 18、使用Selenium操作浏览器的弹窗

    目录 1.操作浏览器自带弹窗 2.操作浏览器页面自定义弹窗 1.操作浏览器自带弹窗 (1)说明: webdriver中处理JavaScript所生成的alert.confirm 以及prompt 弹窗 ...

  9. Selenium+java操作浏览器cookies

    描述:登录CSDN,将登录信息cookies保存到文件,再次打开网页时,直接利用文件中的数据登录. 1. 获取cookies并保存到文件 步骤: ① 打开CSDN的登录界面: ② 填写用户名和密码: ...

随机推荐

  1. Vuforia的图像识别之后的服务器下载与ARKit的兼容性解决

    2017.12.12 遇到的问题: Could not produce class with ID 75 直接关闭unity里面的Strip engine code,解决下载ab时的崩溃问题 *Str ...

  2. PHP之static静态变量详解

    在看别人项目过程中,看到函数里面很多static修饰的变量,关于static修饰的变量,作用域,用法越看越困惑,所以查了下资料. static用法如下: 1.static 放在函数内部修饰变量 2.s ...

  3. 进入django

    web应用,c/s,b/s架构 c/s: 客户端 服务端 b/s: 浏览器 服务器 HTTP协议: 超文本传输协议 四大特性: 1.基于TCP/IP作用在应用层之上的协议 2.基于请求响应 3.无状态 ...

  4. Coverity代码扫描工具

    1.说明:Coverity代码扫描工具可以扫描java,C/C++等语言,可以和jenkins联动,不过就是要收钱,jenkins上的插件可以用,免费的,适用于小的java项目 2.这是Coverit ...

  5. php无限极分类方法

    仅供参考: //控制器 $data = M('category')->select(); $datas = D('Category')->_getTree($data, 0,0,TRUE) ...

  6. sklearn交叉验证3-【老鱼学sklearn】

    在上一个博文中,我们用learning_curve函数来确定应该拥有多少的训练集能够达到效果,就像一个人进行学习时需要做多少题目就能拥有较好的考试成绩了. 本次我们来看下如何调整学习中的参数,类似一个 ...

  7. pycharm中连接公网IP方法

    我们的公网IP可以加到pycharm里面,这样程序跑的时候,在测试过程中就用pycharm直接修改文件,然后在pycharm里面上传,操作更加便捷 在pycharm中找到tool按钮,在菜单栏里面 然 ...

  8. Linux环境搭建 | 手把手教你如何安装CentOS7虚拟机

    centos 下载地址: 可以去官网下载最新版本:https://www.centos.org/download/ 以下针对各个版本的ISO镜像文件,进行一一说明: CentOS-7.0-x86_64 ...

  9. json,HTTP协议

    JSON 语法规则 JSON 语法是 JavaScript 对象表示语法的子集. 数据在名称/值对中 数据由逗号分隔 大括号保存对象 中括号保存数组 JSON 对象 JSON 对象使用在大括号({}) ...

  10. vitualbox中的centos7与主机共享文件

    我在vitualbox中安装了一个centos7,最小安装.主机是win10操作系统.那么如何在虚拟机和主机之间进行文件共享呢,下面是本人实现过程,以及过程中遇到的一些问题. 1.在主机中选择一个文件 ...