【问题标题】:Selenium Webdriver store cookies and use them c#Selenium Webdriver 存储 cookie 并使用它们 c#
【发布时间】:2020-04-23 08:08:34
【问题描述】:

我想存储一个网站的cookies(用于登录),关闭驱动程序并启动一个新的驱动程序并在新的浏览器中使用cookies(因为我想无头控制网站)。

使用 C#、Selenium 和 Chrome

我试过了:

driver = new ChromeDriver(driverService);
driver.Navigate().GoToUrl("websiteXY");

//...Waits here for User input and goes after input on...

var cookies = driver.Manage().Cookies.AllCookies; 
driver.Close();

driver = new ChromeDriver(driverService, options);
driver.Navigate().GoToUrl("websiteXY");

foreach (Cookie ck in cookies)
{
    Console.WriteLine(ck); //gets no output here
    driver.Manage().Cookies.AddCookie(ck);
}

没有错误,除了一个错误,因为它无法登录(没有 cookie)并且没有找到它正在搜索的元素。

【问题讨论】:

  • 在您的代码中关闭驱动程序并创建一个新驱动程序,然后访问旧 cookie??

标签: c# selenium google-chrome selenium-webdriver cookies


【解决方案1】:

首先验证,如果在您保存 cookie 后,使用此行:var cookies = driver.Manage().Cookies.AllCookies;cookies 是否包含任何数据?

【讨论】:

  • 我打印了Console.WriteLine(cookies.Count) 输出为0
  • 那么,您似乎没有正确获取 cookie。首先完成这部分,然后继续将 cookie 放入新浏览器。
  • 我如何获得它们?
  • 我会从验证开始,如果当时网站中存在 cookie,当您尝试获取它们时。如果不是,那么找出它们出现在哪个页面/状态。
猜你喜欢
  • 1970-01-01
  • 2017-02-08
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 1970-01-01
  • 2013-02-10
  • 1970-01-01
相关资源
最近更新 更多