Selenium webdriver 无提示打印后禁用另存为对话框

Selenium webdriver 无提示打印后禁用另存为对话框,selenium-webdriver,save-as,Selenium Webdriver,Save As,我试图使用下面给出的代码,在Selenium中使用firefox配置文件绕过“选择打印机”和“另存为”对话框。我想通过单击打印按钮将pdf文件保存到所需位置,而无需选择打印机和另存为对话框 FirefoxProfile profile = new FirefoxProfile(); FirefoxOptions options = new FirefoxOptions(); System.setProperty("webdriver.gecko.driver", "drivers\\gecko

我试图使用下面给出的代码,在Selenium中使用firefox配置文件绕过“选择打印机”和“另存为”对话框。我想通过单击打印按钮将pdf文件保存到所需位置,而无需选择打印机和另存为对话框

FirefoxProfile profile = new FirefoxProfile();
FirefoxOptions options = new FirefoxOptions();

System.setProperty("webdriver.gecko.driver", "drivers\\geckodriver.exe");
String downloadPath = "C:/downloads";
profile.setPreference("print.always_print_silent", true);
profile.setPreference("browser.download.folderList",1);
profile.setPreference("browser.download.manager.showWhenStarting",false);
profile.setPreference("browser.download.dir",downloadPath);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/pdf");
profile.setPreference("pdfjs.disabled", true);

WebDriver driver = new FirefoxDriver(options.setProfile(profile));
driver.get("google.com");

((JavascriptExecutor)driver).executeScript("window.print();");
我不想使用Robot或Action类或AutoIT

FirefoxProfile profile = new FirefoxProfile();
FirefoxOptions options = new FirefoxOptions();

System.setProperty("webdriver.gecko.driver", "drivers\\geckodriver.exe");
String downloadPath = "C:/downloads";
profile.setPreference("print.always_print_silent", true);
profile.setPreference("browser.download.folderList",1);
profile.setPreference("browser.download.manager.showWhenStarting",false);
profile.setPreference("browser.download.dir",downloadPath);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/pdf");
profile.setPreference("pdfjs.disabled", true);

WebDriver driver = new FirefoxDriver(options.setProfile(profile));
driver.get("google.com");

((JavascriptExecutor)driver).executeScript("window.print();");
这样,“选择打印机”将被禁用,但仍会打开“另存为窗口”对话框

FirefoxProfile profile = new FirefoxProfile();
FirefoxOptions options = new FirefoxOptions();

System.setProperty("webdriver.gecko.driver", "drivers\\geckodriver.exe");
String downloadPath = "C:/downloads";
profile.setPreference("print.always_print_silent", true);
profile.setPreference("browser.download.folderList",1);
profile.setPreference("browser.download.manager.showWhenStarting",false);
profile.setPreference("browser.download.dir",downloadPath);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/pdf");
profile.setPreference("pdfjs.disabled", true);

WebDriver driver = new FirefoxDriver(options.setProfile(profile));
driver.get("google.com");

((JavascriptExecutor)driver).executeScript("window.print();");

是否有任何方法可以同时禁用这两个选项,并且我们可以在自定义位置保存文件,而无需提示窗口对话框?

Gecko驱动程序不使用配置文件首选项。
FirefoxProfile profile = new FirefoxProfile();
FirefoxOptions options = new FirefoxOptions();

System.setProperty("webdriver.gecko.driver", "drivers\\geckodriver.exe");
String downloadPath = "C:/downloads";
profile.setPreference("print.always_print_silent", true);
profile.setPreference("browser.download.folderList",1);
profile.setPreference("browser.download.manager.showWhenStarting",false);
profile.setPreference("browser.download.dir",downloadPath);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/pdf");
profile.setPreference("pdfjs.disabled", true);

WebDriver driver = new FirefoxDriver(options.setProfile(profile));
driver.get("google.com");

((JavascriptExecutor)driver).executeScript("window.print();");
相反,您应该创建一个FireFoxOptions对象并向其添加您的首选项,然后将其传递给驱动程序

FirefoxProfile profile = new FirefoxProfile();
FirefoxOptions options = new FirefoxOptions();

System.setProperty("webdriver.gecko.driver", "drivers\\geckodriver.exe");
String downloadPath = "C:/downloads";
profile.setPreference("print.always_print_silent", true);
profile.setPreference("browser.download.folderList",1);
profile.setPreference("browser.download.manager.showWhenStarting",false);
profile.setPreference("browser.download.dir",downloadPath);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/pdf");
profile.setPreference("pdfjs.disabled", true);

WebDriver driver = new FirefoxDriver(options.setProfile(profile));
driver.get("google.com");

((JavascriptExecutor)driver).executeScript("window.print();");
FirefoxOptions options = new FirefoxOptions();
options.addPreference("browser.download.dir", DOWNLOAD_PATH);
options.addPreference("browser.download.folderList", 2);
options.addPreference("browser.download.manager.showWhenStarting", false);
options.addPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream;application/xlsx");
WebDriver driver = new FirefoxDriver(options);