我需要下载一个pdf,我使用无头,所以浏览器无法打开,并且pdf在视图中,所以我使用了"plugins.always_open_pdf_externally" parameter: True
。
为了不渲染浏览器,我使用options.add_argument ("- headless")
参数。
如果我评论options.add_argument ("- headless")
通常会发生pdf下载,但是如果我启用它,它就不起作用。
如何解决这个问题?
参数:
options = Options()
options.add_argument("--headless")
options.add_argument("--window-size=1920,1080")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
appState = {
"recentDestinations": [
{
"id": "Save as PDF",
"origin": "local"
}
],
"selectedDestinationId": "Save as PDF",
"version": 2
}
profile = {"plugins.plugins_list": [{"enabled": False, "name": "Chrome PDF Viewer"}], # Disable Chrome's PDF Viewer
"download.extensions_to_open": "applications/pdf",
# "plugins.always_open_pdf_externally": True,
"printing.print_preview_sticky_settings.appState": json.dumps(appState)}
options.add_experimental_option("prefs", profile)
driver = webdriver.Chrome(chrome_options=options, executable_path=r'D:MegaRaizDados_brcapturachromedriver.exe')
print ("Headless Chrome Initialized")
params = {'behavior': 'allow', 'downloadPath': r'C:UsersdieinimyDownloads'}
driver.execute_cdp_cmd('Page.setDownloadBehavior', params)```
为了在无头浏览器上触发事件,您必须设置窗口大小。因为无头浏览器无法识别在没有窗口大小的情况下单击的位置。
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('window-size=1920x1080');