Как сохранить открытую страницу в формате PDF в Selenium (Python)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как сохранить открытую страницу в формате PDF в Selenium (Python)

Сообщение Anonymous »

Перепробовал все решения, которые смог найти в Интернете, чтобы распечатать страницу, открытую в Selenium, на Python. Однако хотя всплывающее окно печати появляется, через секунду или две оно исчезает, а PDF-файл не сохраняется.

Вот тестируемый код. На основе кода здесь - https://stackoverflow.com/a/43752129/3973491

Кодирование на Mac с помощью Mojave 10.14.5.

Код: Выделить всё

from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import WebDriverException
import time
import json

options = Options()
appState = {
"recentDestinations": [
{
"id": "Save as PDF",
"origin": "local"
}
],
"selectedDestinationId": "Save as PDF",
"version": 2
}

profile = {'printing.print_preview_sticky_settings.appState': json.dumps(appState)}
# profile = {'printing.print_preview_sticky_settings.appState':json.dumps(appState),'savefile.default_directory':downloadPath}
options.add_experimental_option('prefs', profile)
options.add_argument('--kiosk-printing')
CHROMEDRIVER_PATH = '/usr/local/bin/chromedriver'

driver = webdriver.Chrome(options=options, executable_path=CHROMEDRIVER_PATH)
driver.implicitly_wait(5)
driver.get(url)
driver.execute_script('window.print();')

Код: Выделить всё

$chromedriver --v
ChromeDriver 75.0.3770.90 (a6dcaf7e3ec6f70a194cc25e8149475c6590e025-refs/branch-heads/3770@{#1003})
Любые подсказки или решения относительно того, что можно сделать, чтобы распечатать открытую HTML-страницу в PDF-файл. Потратили часы, пытаясь заставить это работать. Спасибо!



Обновление от 11 июля 2019 г.:

Мой вопрос был идентифицирован как дубликат, но а) в другом вопросе, похоже, используется код Javascript, и б) ответ не решает проблему, поднятую в этом вопросе - возможно, это связано с более новым программным обеспечением. версии. Используемая версия Chrome — версия 75.0.3770.100 (официальная сборка) (64-разрядная версия), а драйвер chromedriver — ChromeDriver 75.0.3770.90. На Mac OS Мохаве. Скрипт работает на Python 3.7.3.

Обновление от 11 июля 2019 г.:

Изменен код чтобы

Код: Выделить всё

from selenium import webdriver
import json

chrome_options = webdriver.ChromeOptions()
settings = {
"appState": {
"recentDestinations": [{
"id": "Save as PDF",
"origin": "local",
"account": "",
}],
"selectedDestinationId": "Save as PDF",
"version": 2
}
}
prefs = {'printing.print_preview_sticky_settings': json.dumps(settings)}
chrome_options.add_experimental_option('prefs', prefs)
chrome_options.add_argument('--kiosk-printing')
CHROMEDRIVER_PATH = '/usr/local/bin/chromedriver'
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=CHROMEDRIVER_PATH)
driver.get("https://google.com")
driver.execute_script('window.print();')
driver.quit()
И теперь ничего не происходит. Chrome запускается, загружает URL-адрес, появляется диалоговое окно печати, но затем ничего не происходит - ничего в очереди принтера по умолчанию и нет PDF-файлов - я даже искал файлы PDF, просматривая «Последние файлы» на Mac.


Подробнее здесь: https://stackoverflow.com/questions/568 ... ium-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как сохранить открытую страницу как PDF в селене (Python)
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как сохранить открытую страницу как PDF в селене (Python)
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как я могу заставить Selenium прочитать мою открытую страницу в Python?
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Отправка команд на открытую ссылку в Selenium с помощью Python
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Отправка команд на открытую ссылку в Selenium с помощью Python
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»