ChromeDriver打开打印窗口后立即关闭的解决办法?
问题:Selenium ChromeDriver 打印HTML为PDF时打印窗口立即关闭,无法生成文件
我尝试用Python结合Selenium(ChromeDriver)打开HTML文档并打印为PDF,但不管是手动触发还是通过Selenium命令打开打印窗口,窗口都会立刻关闭。用以下代码无法生成PDF文件:
chrome_options = webdriver.ChromeOptions() settings = {"recentDestinations": [{"id": "Save as PDF", "origin": "local", "account": ""}], "selectedDestinationId": "Save as PDF", "version": 2} prefs = {'printing.print_preview_sticky_settings.appState': json.dumps(settings), 'savefile.default_directory': path_html} chrome_options.add_experimental_option('prefs', prefs) chrome_options.add_argument('--kiosk-printing') browser = webdriver.Chrome(CHROMEDRIVER_PATH, options=chrome_options) browser.get(path_html) browser.execute_script('window.print();') browser.close()
我使用的是Windows平台的最新版ChromeDriver,直接手动打开浏览器可以顺利将该HTML文档打印为PDF。
解决方法
如果有人遇到相同问题,我通过一个基于上述代码逻辑的HTML转PDF封装工具解决了问题,具体是使用pyhtml2pdf库中的converter函数。
内容的提问来源于stack exchange,提问作者Spedtsberg
相关产品推荐
相关产品推荐

