【发布时间】:2018-07-01 22:11:04
【问题描述】:
/我正在使用以下代码来获取 cookie 值,但我只得到第 1 部分和第 2 部分。但没有得到第 3 和第 4 部分(如您所见,为空)。 请帮我解决这个问题。我附上了我手动获取的 cookie 的屏幕截图/
WebDriver driver;
System.setProperty("webdriver.ie.driver",
"C:\\Users\\MR049860\\Documents\\Selenium\\IEDriverServer\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
driver.get("https://www.example.com");
// Input Email id and Password If you are already Register
driver.findElement(By.name("j_username")).sendKeys("publisher");
driver.findElement(By.name("j_password")).sendKeys("Passw0rd");
WebDriverWait wait = new WebDriverWait(driver, 5);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("BtnButton__")));
// WebElement ele = driver.findElement(By.id("ctllogonBtnButton__"));
element.sendKeys(Keys.ENTER);
// create file named Cookies to store Login Information
File file = new File("madhu.data");
try
{
// Delete old file if exists
file.delete();
file.createNewFile();
FileWriter fileWrite = new FileWriter(file);
BufferedWriter Bwrite = new BufferedWriter(fileWrite);
// loop for getting the cookie information
// loop for getting the cookie information
for(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 ex)
{
ex.printStackTrace();
}
输出:- ASPSESSIONIDSZQPRQCS;NFPFIAGDBMJNOMKPCPKESHDC;null;/;null;true
【问题讨论】:
-
getCookies 方法只返回当前域的 cookie。所以他们可能是空的。文件中是否只添加了一行?这意味着 Cookie 中只有一个 name=value 吗?但在图像中我可以看到有多个名称=值对。参考developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cookie 语法。您可能会看到值 JSESSIONID 作为名称和 2C36** 作为值。我观察到的一件主要事情是您附加了请求标头。但 getCookies 返回由 RESPONSE HEADER
Set-Cookie设置的 Cookie。 -
请阅读为什么是
screenshot of HTML or code or error is a bad idea。考虑使用基于格式化文本的相关 HTML、代码试验和错误堆栈跟踪来更新问题。
标签: java selenium cookies selenium-webdriver