[英]How to save web page as pdf automatically in Selenium python
我正在嘗試將 web 頁面保存為 PDF 但我得到的只是文件名選擇 window。 如何自動輸入文件名並保存?
settings = {
"appState": {
"recentDestinations": [{
"id": "Save as PDF",
"origin": "local",
"account": "",
"margin": 0,
'size': 'auto'
}],
"selectedDestinationId": "Save as PDF",
"version": 2,
"margin": 0,
'size': 'auto'
}
}
#There is probably a lot of excess here, I tried to use everything that can help
prefs = {'printing.print_preview_sticky_settings': json.dumps(settings),
'profile.default_content_settings.popups': 0,
'download.name': 'test.pdf', #It doesn't work(
'download.default_directory': download_path,
'savefile.default_directory': download_path,
'download.prompt_for_download': False,
"download.directory_upgrade": True,
"safebrowsing_for_trusted_sources_enabled": False,
"safebrowsing.enabled": True,
"download.extensions_to_open": "",
"plugins.always_open_pdf_externally": True,
}
options.add_experimental_option('prefs', prefs)
options.add_argument('--kiosk-printing')
driver = webdriver.Chrome(service=ser, options=options)
driver.maximize_window()
driver.get('url')
driver.execute_script('window.print();')
time.sleep(20)
我在互聯網上找不到解決方案,我嘗試了所有可能的選項,但它對我不起作用。
Selenium 中沒有內置的 function 允許您將 web 頁面保存為 ZBCD1B640617759BA8DA1 但是,您可以使用第三方工具(例如 wkhtmltopdf)來完成此操作。
從官方網站下載 wkhtmltopdf 二進制文件並將它們安裝在您的系統上。
將 wkhtmltopdf 二進制文件添加到系統 PATH 中,以便 Selenium 可以找到它。
save_as_pdf function 采用 Selenium webdriver 實例和文件名 arguments 並將當前頁面保存為 Selenium
def save_as_pdf(driver, filename): driver.execute_script('window.print();') sleep(5) with open(filename, 'wb') as file: file.write(driver.page_source.encode('utf- 8'))
我能夠使用 pyautogui 庫解決這個問題。 雖然我認為這不是最好的解決方案
import pyautogui as pag
driver.execute_script('window.print();')
time.sleep(20)
pag.typewrite('test.pdf')
time.sleep(1)
pag.press("enter")
time.sleep(20)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.