我正在与一个问题作斗争。
当打印对话框出现时,我需要下载PDF文件。
以下是该对话框的示例

我已经尝试过chrome和firefox驱动程序。但不幸的是,它仍然不能正常工作。
我发现以下是firefox的首选
fp.setPreference("print.print_to_file", true);但它似乎不起作用。它甚至不会应用到配置变量集。
请建议使用selenium自动执行某些操作,然后在此打印对话框出现时保存为PDF文件。
发布于 2017-09-09 09:38:28
首先,您需要知道selenium是一个web自动化工具。所以它只能操作属于浏览器的东西。即使这样,它也不能操作所有属于浏览器的东西,比如浏览器的地址栏、喜好栏、菜单栏。
在大多数情况下,打印对话框不属于浏览器,它由操作系统或操作系统上安装的其他软件提供。所以硒不能操作,这是合理的。
如果你的脚本是用java编写的,你可以使用java.awt.robot来捕获对话框,然后点击‘打印到文件’。
如果java.awt.robot能像你期望的那样工作,我想你也需要在你的脚本中设置浏览器选项,给出浏览器保存打印文件的路径,就像你下载文件时,浏览器会问你保存在哪里。
如果您不设置选项,我猜它会弹出另一个对话框,询问您要保存到何处,而且此对话框也不属于浏览器。使用java.awt.robot设置保存路径并不容易。
因为您需要考虑在不同操作系统上运行脚本的可能性,所以在不同的操作系统上使用不同的路径是不可行的。此外,如果你的脚本运行在seleniu grid上,它会让你疯狂。因此,如果测试打印到文件功能并不重要,我建议您手动测试它。
发布于 2020-01-28 14:26:57
您可以使用Testmate自动打印到PDF,如下所示http://thetestmate.com/save-as-pdf-in-chrome-testmate-selenium/
https://stackoverflow.com/questions/46125177
复制相似问题