使用selenium驱动程序打印到PDF

时间:2017-09-08 22:15:16

标签: selenium pdf firefox webdriver webdriver-io

我正在努力解决问题。

出现“打印”对话框时,我需要下载PDF文件。

以下是对话框的示例

enter image description here

我已尝试过chrome和firefox驱动程序。但不幸的是仍然无法让它发挥作用。

我找到了firefox的以下首选项

    fp.setPreference("print.print_to_file", true);

但似乎它不起作用。 它甚至无法应用于配置变量集。

请建议使用selenium自动执行某些操作,然后在出现此打印对话框时保存为PDF文件。

2 个答案:

答案 0 :(得分:0)

首先,您需要了解selenium是一种Web自动化工具。所以它只能操作属于浏览器的东西。即便如此,它也无法操作所有属于浏览器的东西,如地址栏,收藏栏,浏览器的菜单栏。

对于大多数情况,打印对话框不属于浏览器,它由操作系统或安装在操作系统上的其他软件提供。所以硒不能操作它是合理的。

如果你的脚本代码是java,你可以使用java.awt.robot来捕获对话框 然后点击“打印到文件'”。

如果java.awt.robot可以按预期工作,我认为您还需要在脚本中设置浏览器选项,为浏览器提供保存打印文件的路径,就像下载文件时一样,浏览会问你在哪里保存。

如果您不设置该选项,我猜它会弹出另一个对话框,询问您保存的位置,此对话框也不属于浏览器。 使用java.awt.robot来设置保存路径并不容易。

因为您需要考虑脚本在不同操作系统上运行的可能性,所以在不同的操作系统上使用abosulte路径是行不通的。此外,如果你的脚本运行seleniu网格,它会让你热衷。因此,如果测试打印到文件功能并不重要,我建议您对其进行测试。

答案 1 :(得分:0)

您可以使用Testmate将打印自动转换为PDF,如下所示 http://thetestmate.com/save-as-pdf-in-chrome-testmate-selenium/