如何删除Google Chrome Cookie

时间:2015-02-06 10:54:47

标签: c# google-chrome cookies

我正在尝试删除Chrome浏览器的Cookie。首先我宣布了路径

string chromeLocation1 = "C:\\Users\\" + Environment.UserName.ToString() + "\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Local Storage";

当我尝试运行我的删除代码“该文件正在被其他程序或用户使用时”出现错误。所以我试图杀死chrome.exe的进程

foreach (var process in Process.GetProcessesByName("chrome.exe"))
{
    process.Kill();
}

但是现在它给了我“拒绝访问”错误,即使我以管理员身份运行它也是如此。我该怎么做才能删除这些cookie?

3 个答案:

答案 0 :(得分:6)

您可以使用selenium framework删除所有Cookie。

1)安装selenium框架 - Selenium WebDriverSelenium WebDriver Support Classes(最简单的方法是使用NuGet)

NuGet

2)使用以下代码删除所有cookie:

var chromeUserData = "C:\\Users\\" + Environment.UserName.ToString(CultureInfo.InvariantCulture) + "\\AppData\\Local\\Google\\Chrome\\User Data";
var chromeAdvancedSettings = "chrome://settings/clearBrowserData";
var options = new ChromeOptions();
options.AddArgument("--lang=en");
options.AddArgument("--user-data-dir=" + chromeUserData);
options.LeaveBrowserRunning = false;
var driver = new ChromeDriver(options);
driver.Navigate().GoToUrl(chromeAdvancedSettings);

var frame = driver.FindElement(By.XPath("//iframe[@src='chrome://settings-frame/clearBrowserData']"));
var frameDriver = driver.SwitchTo().Frame(frame);
var dropDown = new SelectElement(frameDriver.FindElement(By.Id("clear-browser-data-time-period")));
dropDown.SelectByIndex(4);
var elm = driver.FindElement(By.Id("delete-cookies-checkbox"));
if (!elm.Selected) elm.Click();
elm = driver.FindElement(By.XPath("//button[@id='clear-browser-data-commit']"));
elm.Click();
var waiter = new WebDriverWait(driver, TimeSpan.FromSeconds(60));
waiter.Until(wd => wd.Url.StartsWith("chrome://settings"));
driver.Navigate().GoToUrl("chrome://newtab");

[Selenium documentation]

答案 1 :(得分:0)

如果您想使用C#语言删除浏览器中的所有数据,则可以使用不同的代码删除每个浏览器历史记录,Cookie等(所有数据)。

这里我写了一些用于删除Internet Explorer的所有数据的代码

1--在按钮单击(窗口表单应用程序或WPF应用程序)中删除Internet Explorer的所有数据/历史记录

private void button1_Click(object sender, EventArgs e)
        {
            //For internet explorer
            System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 255");

        }

2 ---现在是重要的浏览器谷歌Chrome(这个谜,因为每个人都试图使用SQLite删除它的所有历史记录,但它错了)。不要使用SQLite数据库,因为谷歌浏览器将所有数据(历史记录,Cookie等)保存在以下位置

C:\ Users \ UserName(您的PC名称)\ AppData \ Local \ Google \ Chrome \用户数据

只需删除所有“用户数据”文件夹或其中的所有文件夹和文件。然后你会看到你的所有历史和饼干清楚。

以下是它的代码。

private void button1_Click(object sender, EventArgs e)
        {
            //For internet explorer
            System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 255");

            // for Google Chrome.
            string rootDrive = Path.GetPathRoot(Environment.SystemDirectory); // for getting primary drive 
            string userName = Environment.UserName; // for getting user name

              // first close all the extension of chrome (close all the chrome browser which are opened)

            try
            {
                Process[] Path1 = Process.GetProcessesByName("chrome");
                foreach (Process p in Path1)
                {
                    try
                    {
                        p.Kill();
                    }
                    catch { }
                    p.WaitForExit();
                    p.Dispose();
                }


                System.IO.DirectoryInfo downloadedMessageInfo = new DirectoryInfo(rootDrive + "Users\\"+userName+"\\AppData\\Local\\Google\\Chrome\\User Data");


                try
                {
                    foreach (FileInfo file in downloadedMessageInfo.GetFiles())
                    {
                        file.Delete();
                    }
                }
                catch { }

                try
                {
                    foreach (DirectoryInfo dir in downloadedMessageInfo.GetDirectories())
                    {
                        dir.Delete(true);
                    }
                }
                catch { }
            }
            catch (IOException ex)
            {
                MessageBox.Show(ex.Message);
            }
                label1.Text = " History Deleted successfully.";
        }

答案 2 :(得分:0)

您可以按照以下控制台应用程序清除Cookie历史记录和缓存

https://stackoverflow.com/a/57111667/9377382