Существует ли delete_all_cookies () для ВСЕХ доменов в Selenium / Chrome? - PullRequest
0 голосов
/ 27 декабря 2018

Я использую Python для автоматизации Chrome с помощью Selenium и Chromedriver.Я указываю user-data-dir, чтобы браузер имел постоянный кеш.Проблема в том, что в нем также сохраняются файлы cookie, и я хотел бы удалить их до при каждом запуске автоматизации.Единственный надежный способ сделать это - удалить все записи из базы данных SQLite3 $USER_DATA_DIR/Default/Cookies.

В веб-драйверах Selenium есть метод delete_all_cookies(), но он удаляет файлы cookie только для доменатекущий URL!

Есть ли лучший способ или, возможно, команда, которую я могу отправить ChromeDriver, которая удалит все куки?В качестве альтернативы, есть ли параметр, который я могу настроить, чтобы Chrome удалял файлы cookie при выходе и / или запуске?

Ответы [ 3 ]

0 голосов
/ 27 декабря 2018

Запустите Chrome, используя incognito mode или приватный просмотр

options = Options()
options.add_argument("--incognito")
driver= webdriver.Chrome(options=options)
0 голосов
/ 12 апреля 2019

Chrome поддерживает Команды протокола DevTools , такие как Network.clearBrowserCookies, которые можно вызывать удаленно.У Selenium нет интерфейса для этого, потому что он не является частью какого-либо стандарта.

Тем не менее, вы можете добавить поддержку этих команд, исправив поддерживаемые команды Selenium, например:

send_command = ('POST', '/session/$sessionId/chromium/send_command')
driver.command_executor._commands['SEND_COMMAND'] = send_command

Теперь вы можете вызывать любую команду протокола DevTools, например

driver.execute('SEND_COMMAND', dict(cmd='Network.clearBrowserCookies', params={}))

Это удаляет все куки для всех доменов.

0 голосов
/ 27 декабря 2018

Существует обходной путь:

. Вы можете использовать Selenium для просмотра "chrome: // settings / clearBrowserData" и использовать эту страницу для удаления файлов cookie, как описано в https://stackoverflow.com/a/28364624/2546759.

.ловушка в том, что этот макет страницы иногда меняется между версиями Chrome.

...