从硒中的文件设置Cookie

时间:2019-02-16 15:28:51

标签: java selenium

我有:一个持久性文本cookie文件 我要:为Selenium请求设置该Cookie

代码:

// go on the domain so we can set the cookie
driver.get("https://www.thedomain.com/404");
try {Thread.sleep(2000);} catch (Exception e) {}

    try{
       File file = new File('CookieFile.txt');
       FileReader fileReader = new FileReader(file);
       BufferedReader Buffreader = new BufferedReader(fileReader);
       String strline;
       while((strline=Buffreader.readLine())!=null){
            StringTokenizer token = new StringTokenizer(strline,";");
            while(token.hasMoreTokens()){
                 String name = token.nextToken();
                 String value = token.nextToken();
                 String domain = token.nextToken();
                 String path = token.nextToken();
                 Date expiry = null;

                 String val;
                 if(!(val=token.nextToken()).equals("null"))
                  {
                     expiry = new Date(val);
                  }
        Boolean isSecure = new Boolean(token.nextToken()).
                            booleanValue();
        Cookie ck = new Cookie(name,value,domain,path,expiry,isSecure);
        System.out.println(ck);
        driver.manage().addCookie(ck); // This will add the stored cookie to your current session
              }
          }
      }catch(Exception ex){
            ex.printStackTrace();
    }

日期字符串:

  

2021年2月15日星期一15:38:00

IDE的

错误

  

java.lang.IllegalArgumentException

     

在java.util.Date.parse(Date.java:617)

     

在java.util.Date。(Date.java:274)

     

在MyClassName.testSaveCookie(MyClassName.java:196)

     

在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)

编写/创建cookie文件可以正常工作。 Date对象集似乎有问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

不推荐使用java.util.Date(String)的原因是很长时间。您应该检查以下代码段:

    DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
    try {
      String s = df.format(d);
      System.out.println(s);
      d = df.parse(s);
    } catch (ParseException e) { 
      e.printStackTrace();
    }

那应该适合您的文件。我建议编辑Cookie文件,并使用简单的日期和时间格式,例如

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

您将必须编辑文件并使用2019-02-16 17:30:44之类的格式。

How to convert a String to a Date using SimpleDateFormat?

中有日期和时间的简洁描述

我建议按照Differences between Java 8 Date Time API (java.time) and Joda-Time所述使用java.time包。

相关问题