2017-10-30 2 views
0

Ich benutze ChromeDriver 2.33 und verwende Kioskdruck, um automatisch auf die Schaltfläche Drucken im Dialogfeld Druckvorschau zu klicken, es wird jedoch das Dokument anstelle von PDF an den Drucker gesendet.Selenium ChromeDriver UserPreferences als PDF speichern

Ich habe die Lösung bei this stack overflow question vergeblich versucht.

Hier ist der Code Ich verwende:

ChromeOptions o = new ChromeOptions(); 
 
o.AddArgument("--kiosk-printing"); 
 
o.AddUserProfilePreference("printing.print_preview_sticky_settings.appState", "{\"version\":2,\"isGcpPromoDismissed\":false,\"selectedDestinationId\":\"Save as PDF\""); 
 
chrome = new ChromeDriver(dir, o);

Kann mir jemand sagen, wie ich den Drucker PDF vom tatsächlichen Drucker eingestellt?

Antwort

0

Versuchen Sie, Save as PDF auf recentDestinations:

import json 
settings = { 
    "appState": { 
     "recentDestinations": [{ 
      "id": "Save as PDF", 
      "origin": "local" 
     }], 
     "selectedDestinationId": "Save as PDF", 
     "version": 2 
    } 
} 
prefs = {'printing.print_preview_sticky_settings': json.dumps(settings)} 
chrome_options = webdriver.ChromeOptions() 
chrome_options.add_experimental_option('prefs', prefs) 
chrome_options.add_argument('--kiosk-printing') 

driver = webdriver.Chrome(chrome_options=chrome_options)