如何使用上一个会话中的cookie打开新的硒铬驱动程序会话以绕过网站登录凭据



我对cookie完全陌生,我想使用以前登录的cookie来绕过登录。为了做到这一点,使用网络驱动程序,我已经成功地将我的cookie存储在.data文件中。现在,当我再次运行该程序时,我希望我的应用程序跳过登录。

存储cookie看起来是这样的:

Set<org.openqa.selenium.Cookie> cookies = driver.manage().getCookies();
File file = new File("Cookies.data");
try{
file.delete();
FileWriter fileWrite = new FileWriter(file);
BufferedWriter Bwrite = new BufferedWriter(fileWrite);
for(org.openqa.selenium.Cookie ck : driver.manage().getCookies()) {
Bwrite.write((ck.getName()+";"+ck.getValue()+";"+ck.getDomain()+";"+ck.getPath()+";"+ck.getExpiry()+";"+ck.isSecure()));                                                                                                    
Bwrite.newLine();   
}
Bwrite.close();
fileWrite.close();
}catch(Exception e){
e.printStackTrace();
}

现在我不确定如何使用这个";Cookies.data";文件打开网站并跳过登录。我尝试了下面这样做,但我真的不确定如何做到这一点,并且收到了错误。任何建议都将不胜感激。

public static void CookieWriter(){
try{
File file = new File("Cookies.data");
FileReader fileReader = new FileReader(file);
String strline;
BufferedReader Buffreader = new BufferedReader(fileReader);
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); 
}
}
}catch(Exception e){
e.printStackTrace();
}
}

这里的代码不起作用,因为";Cookie ck=新Cookie(名称、值、域、路径、到期日、isSecure("没有有效的构造函数?我还试着用";设置<org.openqa.selence.Cookie>cookes=新Cookie(名称、值、域、路径、到期日、isSecure("而且它不起作用。

您的代码让我很困惑,但绕过登录的时间顺序是:

您必须登录in应用程序并将cookie记录在文件中。然后在登录后,应该获取域cookie,并从您的请求中的文件中添加这些cookie,然后导航到主页午餐页面。

最新更新