Как очистить cookies и историю в GoogleChrome?

csharp
chromedriver
webdriver
selenium
Теги: #<Tag:0x00007fedb9d658e0> #<Tag:0x00007fedb9d657a0> #<Tag:0x00007fedb9d65660> #<Tag:0x00007fedb9d65520>

(It Ot) #1

Как используя код(C#) очистить историю и cookies в GoogleChrome?
Т.е. имитировать нажатие кнопок Ctrl+Shift+Delete


(Сергей Кузьмин) #2

java
driver.manage().deleteAllCookies();
.net
driver.Manage().Cookies.DeleteAllCookies();


(It Ot) #3

".net" - это подходит для c#&

PS
Только осваиваю С#. Не владею всеми особенностями


(Сергей Блохин) #4

Почему бы просто не переинициализировать драйвер?


(Евгений Бухгаммер) #5

Переинициализация драйвера ведет к сбросу всех кешей, состояния сессии, кук. Не всегда нужно сбрасывать и терять вообще всё.


(Сергей Кузьмин) #6

имелось в виду


public class TestClass {
        private StringBuilder verificationErrors = new StringBuilder();
        private IWebDriver driver;
        private WebDriverWait wait;
        private IAlert alert;
        private const int script_wait_seconds = 60;
        private const int wait_seconds = 3;
        private const int window_width = 800;
        private const int window_height = 600;
        private Actions actions;
        private const String base_url = "...";
   [TestFixtureSetUp] // или  [TestInitialize()] если исп. mstest 
        public void SetUp()
        {
            driver = new ChromeDriver();
            driver.Manage().Cookies.DeleteAllCookies();
        driver.Manage().Window.Size = new System.Drawing.Size(window_width, window_height);
            driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(script_wait_seconds));
            ngDriver = new NgWebDriver(driver);
            wait = new WebDriverWait(driver, TimeSpan.FromSeconds(wait_seconds));
            actions = new Actions(driver);
        }

...

(Евгений Бухгаммер) #7
  1. Топик стартер вполне конкретно хотел почистить куки. Чищенные куки - это результат - и достигается он как вызовом метода DeleteAllCookies(),так и переинициализацией драйвера (без подгрузки профилей!).
  2. Совет переинициализации драйвера - не панацея - т.к. несет за собой потерю контекста, который иногда не нужно терять.
  3. В вашем коде представленном не вижу смысла в driver.Manage().Cookies.DeleteAllCookies(); т.к. строчкой выше вы не передаете в ChromeDriver инстанса ChromeOptions. Значит по умолчанию у вас никаких кук и так не должно быть. Если они есть - значит вы манкипатчите конструктор хром драйвера :slight_smile:

Не нужно изобретать велосисед, если нужно чистить куки - для этого есть метод. Который, кстати, периодически с выходом новых версий браузеров\вебрайверов перестает работать, но это уже совсем другая история.