到目前为止,我实现了获得一个网站的所有cookie(这是我想要的。我不需要也不想要特定的cookie)使用以下代码:
var cookies = driver.Manage().Cookies.AllCookies;
// write full path txt file
using (StreamWriter fs = new StreamWriter(@"demo.txt", true))
{
foreach (var cookie in cookies)
{
fs.WriteLine(cookie.ToString());
}
}
然后,我尝试从文件中读取并使用以下代码逐个cookie地插入值:
var lines = File.ReadAllLines(@"C:\Users\flame\Desktop\demo.txt");
foreach (var line in lines)
{
driver.Manage().Cookies.AddCookie(line);
MessageBox.Show(line.ToString());
}
然而,这并不像第一行代码那样有效。即使是我的第一行代码也没有做到我真正想要的,即把给定网站的所有cookie保存为一个字符串,然后使用这个字符串添加所有cookie。我不想把cookie保存在一个文件中。
如果你知道怎么做,你可能会这样做,如果你选择点击这个问题,我将感谢任何信息和示例代码。
另外,我知道data-dir的使用,但是,这不是我想要的,因为我想把cookie保存为字符串,因为这是我的项目的要求。
1条答案
按热度按时间7cwmlq891#
即使这个问题有点不清楚,我也会尽力给予你一个解决问题的办法。
如果理解正确,您需要将
OpenQA.Selenium.Cookie
转换为string
,这样您就可以将检索到的cookie序列化为一个json字符串,并将此json存储到一个变量中以供以后使用。现在,如果您想将此(cookie的)字符串设置为新的cookie,您必须将其反序列化回OpenQA.Selenium.Cookie
。为此,我创建了两个扩展方法,使代码更简洁。
您可以使用以下这些方法: