Не удалось удалить определенный файл cookie (Selenium WebDriver, С#, Chrome)

78
10

В ряде моих тестов используется метод DeleteCookies, который выполняет следующие действия:

chromeDriver.Manage().Cookies.DeleteAllCookies();

Это было здорово до сегодняшнего дня, когда один из тестов заставил приложение сделать исключение:

Необходимого анти-подделки cookie "__RequestVerificationToken" нет.

Поэтому я решил удалить конкретный файл cookie, о котором идет речь, а не все:

chromeDriver.Manage().Cookies.DeleteCookieNamed("user%40user.com");

Указанный файл cookie не был удален.

Чтобы действительно удалить DeleteCookieNamed, я удалил два других файла cookie, которые создает приложение, и оно сработало.

Когда пользователь входит в систему, приложение устанавливает имя файла cookie на свое имя пользователя (в этом случае user@user.com)... но, предположительно, из-за URL-кодирования, изменяется от @до% 40.

Куки, которые удалили, не содержат% 40.

Если бы вы не смогли удалить файлы cookie, в которых имя содержит% 40, тогда DeleteAllCookies не сработало бы. Поэтому я подозреваю, что у моего целевого cookie есть зависимости, похожие на то, как ограничения внешнего ключа работают в реляционных базах данных, так что мне нужно удалить один или несколько других файлов cookie в определенном порядке, прежде чем я смогу удалить указанный.

Беглый взгляд на Google дает мне инструкции о том, как удалять файлы cookie в Chrome, а не о том, как Chrome удаляет файлы cookie. Радость. Сегодня у меня не хватит времени, пожалуйста, у вас есть какие-нибудь идеи?

спросил(а) 2021-01-19T10:57:14+03:00 6 месяцев, 2 недели назад
1
Решение
89

Это похоже на подходящую работу для моей конкретной ситуации - запустите тест CanLogIn последним, используя Playlist:

qaru.site/questions/130635/...

ответил(а) 2021-01-19T10:57:14+03:00 6 месяцев, 2 недели назад
45

То, как я столкнулся с этой проблемой, когда у меня было это, - это создать cookie через селен, а затем я смог удалить его. Мне было проще, но не использовать @в именах файлов cookie. Надеюсь, это поможет.

ответил(а) 2021-01-19T10:57:14+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема