我如何删除谷歌Chrome饼干

问题描述:

我试图删除Chrome浏览器的cookies。首先我声明了路径我如何删除谷歌Chrome饼干

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

当我尝试运行我的删除代码“该文件是由另一程序或用户使用”出现错误。于是,我就杀了chrome.exe的proccess

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

但现在它给我‘拒绝访问’错误,即使我运行它为管理员。我应该怎么做才能删除这些cookies?

+0

它是否在Process.GetProcessByName(“chrome.exe”)中查找进程?我还以为你有没有我安装了它的扩展名(即'Process.GetProcessByName(“铬”)') – colmde 2015-02-06 11:21:33

您可以删除所有Cookie与selenium framework

1)安装硒框架 - 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]

+0

进行搜索,但它说:“ChromeDriver”命名空间没有发现 – JayGatsby 2015-02-06 11:47:58

+0

@JayGatsby尝试使用此命名空间:'使用OpenQA.Selenium。镀铬;' – kmatyaszek 2015-02-06 11:48:49

+0

代码工作没有错误,但是当我执行它会出现一个DOS屏幕带有这个文本和Cookie不会删除“启动ChromeDriver 2.13.307647(5a7d0541ebc58e69994a6fb2ed930f45261f3c29)上 端口22774 只有本地连接被允许 。” – JayGatsby 2015-02-06 11:56:25

如果您要删除浏览器中的所有数据,请使用C#lang你可以使用不同的代码删除每个浏览器历史记录,cookies等(所有数据)。

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

1--删除点击一个按钮所有的数据/ Internet Explorer中的历史(窗口窗体应用程序或WPF应用程序)

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数据库,因为谷歌浏览器在以下位置保持所有数据(历史记录,cookies,和等)

C:\ Users \用户名(你的计算机名)\应用程序数据\本地\谷歌\镀铬\用户数据

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

以下是它的代码。

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."; 
     }