В ряде моих тестов используется метод DeleteCookies, который делает это:
chromeDriver.Manage().Cookies.DeleteAllCookies();
Это было замечательно до сегодняшнего дня, когда один из тестов заставил приложение принять исключение:
Необходимый файл cookie для защиты от подделки "__RequestVerificationToken" отсутствует.
Поэтому я решил удалить конкретный рассматриваемый файл cookie, а не все:
chromeDriver.Manage().Cookies.DeleteCookieNamed("user%40user.com");
Указанный файл cookie не был удален.
Чтобы убедиться, что DeleteCookieNamed действительно сработал, я удалил два других файла cookie, создаваемых приложением, и все заработало.
Когда пользователь входит в систему, приложение задает имя файла cookie для его имени пользователя (в данном случае user@user.com) ... но, вероятно, из-за кодировки URL, изменяет @ на% 40.
Файлы cookie, которые удалили , не содержали% 40.
Если бы вы не могли удалить файлы cookie, где имя содержит% 40, тогда DeleteAllCookies не будетработал.Поэтому я подозреваю, что у моего целевого файла cookie есть зависимости, аналогичные тому, как работают ограничения внешнего ключа в реляционных базах данных, так что мне нужно удалить один или несколько других файлов cookie в определенном порядке, прежде чем я смогу удалить указанный.
Aбеглый взгляд на Google дает мне инструкции о том, как удалить куки в Chrome, а не как Chrome удаляет куки.Радость.У меня сегодня не хватает времени, пожалуйста, у вас есть какие-либо идеи?