我正在尝试删除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?
答案 0 :(得分:6)
您可以使用selenium framework删除所有Cookie。
1)安装selenium框架 - Selenium WebDriver
和Selenium WebDriver Support Classes
(最简单的方法是使用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");
答案 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历史记录和缓存