【发布时间】:2015-07-17 18:30:28
【问题描述】:
众所周知的已弃用问题导致我出现问题。以下行“到期=新日期(dt);”是目标脚本。详细解释一下我成功习惯了
Date expiry = null;
String dt;
if(!(dt=str.nextToken()).equals("null"));
{
expiry = new Date(dt);
}
使用脚本中的这些行从文件中读取 cookie。是的,“日期”已被弃用。我已经阅读了一些解决方案,但在纠正它时仍然存在一系列错误。
什么是正确的代替“日期”。我还提供了下面的完整脚本
package test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Date;
import java.util.StringTokenizer;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Reader {
public static void main(String[] args) {
System.setProperty ("webdriver.chrome.driver", "D:\\Selenium\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.gmail.com");
try{
File f = new File("browser.data");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine())!=null){
StringTokenizer str = new StringTokenizer (line, ";");
while (str.hasMoreTokens()) {
String name = str.nextToken();
String value = str.nextToken();
String domain = str.nextToken();
String path = str.nextToken();
Date expiry = null;
String dt;
if(!(dt=str.nextToken()).equals("null"));
{
expiry = new Date(dt);
}
boolean isSecure = new Boolean(str.nextToken()).booleanValue();
Cookie ck = new Cookie (name,value,domain,path,expiry,isSecure);
driver.manage().addCookie(ck);
br.close();
}
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
driver.get("http://gmail.com");
}
}
【问题讨论】:
-
我认为您的代码中至少有一个错误 -
;末尾的if(!(dt=str.nextToken()).equals("null"));表示总是分配到期。如果这是预期的行为,您可以删除与"null"的比较以及使其更清晰的条件。 -
谢谢。我将其更正为 if(!(dt).equals("null")) { SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd hh:mm:ss");到期 = sdf.parse(dt);
-
当我运行脚本时,我导致另一个错误是 org.openqa.selenium.InvalidCookieDomainException: invalid cookie domain: invalid domain:"/"。请帮帮我
-
“dup”指的不是同一个构造函数——所以这些答案对这个问题并没有太大帮助。
标签: java cookies selenium-webdriver webdriver deprecated