Я не могу вернуть Chrome по умолчанию для сохранения в формате PDF при использовании Selenium - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь сохранить некоторые веб-страницы в PDF с помощью Python, Selenium и Chrome, и я не могу настроить принтер по умолчанию для встроенной в Chrome опции «сохранить как PDF».

Я нашел примеры того, как это сделать, в разных местах в Интернете, в том числе в вопросах, которые люди задавали о переполнении стека, но они так, как они все это реализуют, не работают, и я не уверен, что что-то изменилось за последние годы.версии Chrome, или если я что-то делаю не так (например, вот страница с такими настройками: Отсутствуют элементы при использовании драйвера селена Chrome для автоматического «Сохранить как PDF» ).

Я включил изменение местоположения загрузки по умолчанию в этот код, чтобы убедиться, что оно вообще принимает любые изменения - если вы загрузите одну из установок Python с этой страницы, она будет загружена в новое местоположение, а не в стандартную папку загрузки.Таким образом, кажется, что Chrome принимает эти изменения.

Похоже, что проблема связана с параметром selectedDestinatio.NID ", который, кажется, ничего не делает.

from selenium import webdriver
import time
import json

chrome_options = webdriver.ChromeOptions()

app_state = {
        'recentDestinations': [{
            'id': 'Save as PDF',
            'origin': 'local'
        }],
        'selectedDestinationId': 'Save as PDF',
        'version': 2
    }



prefs = {
    'printing.print_preview_sticky_settings.appState': json.dumps(app_state),
    'download.default_directory': 'c:\\temp\\seleniumtesting\\'
    }
chrome_options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(executable_path='C:\\temp\\seleniumtesting\\chromedriver.exe', options=chrome_options)

driver.get('https://www.python.org/downloads/release/python-373/')

time.sleep(25)
driver.close()

После запуска страницы при нажатии ctrl + p открывается страница печати, но по умолчанию используется принтер по умолчанию.Если я поднимаю ту же страницу в моей стандартной установке Chrome, по умолчанию она печатается в PDF.Я хочу добраться до точки, где я могу добавить печать киоска и затем вызвать window.print (), но на данный момент все, что делает, это отправляет его на настоящий бумажный принтер.

Спасибо за любую помощь, которую может предложить каждый.Я в замешательстве, и в этот момент, вероятно, было бы быстрее просто сохранить все это вручную.

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