我想以编程方式指示Firefox访问URL列表(例如,在文本文件中定义),然后将每个URL保存到磁盘或打印该页面。
我知道Selenium提供了捕获页面截图的功能,但是我想知道是否可以使用浏览器的本机保存和打印功能。
如果Selenium不提供此类功能,是否可以使用其他任何工具来定义要由Firefox执行的 脚本 并获得相似的结果?
可以绕过“打印”对话框,在firefox中启用无声打印以打印到默认打印机。
所需的firefox首选项为print.always_print_silent,并且可以使用硒进行设置,如下所示:
print.always_print_silent
import org.openqa.selenium.JavascriptExecutor; /* ... */ FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("print.always_print_silent", true); WebDriver driver = new FirefoxDriver(profile);
现在,只需导航到网页并使用javascript调用print:
driver.get("http://www.google.com"); ((JavascriptExecutor)driver).executeScript("window.print();");
此外,将其与免费的PDF打印机(例如novaPDF)结合使用时,无需显示“另存为”对话框即可进行打印,并自动将PDF保存到预定义的位置。