我有:一个持久性文本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();
}
日期字符串:
IDE的2021年2月15日星期一15:38:00
错误:
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对象集似乎有问题。有什么想法吗?
答案 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包。