【问题标题】:Adding cookies to selenium from cookie container从 cookie 容器将 cookie 添加到 selenium
【发布时间】:2021-06-23 14:37:11
【问题描述】:

我有一个收集成功的 http 请求的数据网格视图。我想要发生的是,当单击数据网格视图中的按钮时,它应该在 selenium 中打开一个浏览器,其中包含来自该特定 http 请求的 cookie。 我已经有一些了。

这是数据网格视图的截图:https://imgur.com/a/5hs9l

这是我目前所拥有的:

CookieContainer cookiejar = new CookieContainer();
//Http request goes here
httpWebRequest1.CookieContainer = cookiejar;

这用于将商品添加到购物车并将 cookie 保存在 cookie 容器中。

这是结帐按钮的作用:

var driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://www.adidas.co.uk/on/demandware.store/Sites-adidas-GB-Site/en_GB/Cart-Show");

foreach (System.Net.Cookie cook in response.Cookies)
{                    
driver.Manage().Cookies.AddCookie(new OpenQA.Selenium.Cookie(cook.Name, cook.Value));
}

我想要发生的是每个数据网格视图行都有一个不同的 cookie 容器,当点击结帐时,它会打开一个使用该 cookie 容器的浏览器。 目前的问题之一是我无法制作一个可以使用按钮添加 cookie 的工作公共 cookie 容器。 第二件事是我不知道如何为每一行制作一个单独的容器。

即使您不了解整个过程,也欢迎任何帮助。

【问题讨论】:

    标签: c# selenium httpwebrequest


    【解决方案1】:

    您不能遍历 cookie 集合。您必须使用反射。

    Hashtable table = (Hashtable)response.Cookies.GetType().InvokeMember(
        "m_domainTable",
        BindingFlags.NonPublic |
        BindingFlags.GetField |
        BindingFlags.Instance,
        null,
        cookies,
        new object[] { }
    );
    
                    foreach (var hostname in table.Keys)
                    {
                        Uri uri = new Uri(string.Format("https://{0}/", hostname));
    
                        foreach (System.Net.Cookie netcookie in cookies.GetCookies(uri))
                        {
                            OpenQA.Selenium.Cookie cookie = new OpenQA.Selenium.Cookie(netcookie.Name, netcookie.Value, netcookie.Domain,netcookie.Path, netcookie.Expires);
                            _currentDriver.Manage().Cookies.AddCookie(cookie);
    
                        }
                    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      相关资源
      最近更新 更多