Кэш не инициализирован, не может получить ошибку RetrieveEntry для Selenium / ChromeDriver, когда я нажимаю ссылку для скачивания - PullRequest
0 голосов
/ 11 сентября 2018

У меня ошибка, когда я пытаюсь щелкнуть ссылку для скачивания в Chrome без головы, и я получаю ошибку ниже.

ОШИБКА: in_progress_cache_impl.cc (191)] Кэш не инициализирован.RetrieveEntry не может.

Это происходит каждый раз, когда вы нажимаете на ссылку для скачивания.

Код работает нормально, когда я не работаю без головы

Также получайте другиеошибки, когда я запускаю как --headless, они ниже не уверены, что связаны:

[0911 / 115517.146: INFO: CONSOLE (0)] "Политика безопасности содержимого 'default-src' self '; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'; 'был доставлен в режиме только отчета, но не указывает 'report-uri'; политика не будет иметь никакого эффекта. Пожалуйста, добавьте директиву report-uri или добавьте политику через заголовок 'Content-Security-Policy'«.storage (0)

[0911 / 115517.620: INFO: CONSOLE (64)] "[Report Only] Отказался оценивать строку как JavaScript, потому что unsafe-eval не является допустимым источником сценария в следующихДиректива политики безопасности содержимого: "script-src 'self' 'unsafe-inline'".

Есть мысли? Использовать последнюю версию ChromeDriver, Python 3.7, последний модуль Selenium. Код просто не работаеткогда я запускаю как безголовый и дохожу до точки, где он должен щелкнуть ссылку для загрузки и поместить файл в путь загрузки.

1 Ответ

0 голосов
/ 11 сентября 2018

Разрешение найдено.По сути, вам необходимо собрать ChromeDriver следующим образом:

def enable_download_in_headless_chrome(driver, download_dir):
    # add missing support for chrome "send_command"  to selenium webdriver
    driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')

    params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': download_dir}}
    command_result = driver.execute("send_command", params)

Полную информацию можно найти в следующих темах:

https://bugs.chromium.org/p/chromium/issues/detail?id=696481

https://bugs.chromium.org/p/chromedriver/issues/detail?id=2454

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...