【问题标题】:Save PDF when clicked on a download button without showing the OK/Cancel option to save单击下载按钮时保存 PDF 而不显示“确定/取消”选项来保存
【发布时间】:2014-04-23 02:47:26
【问题描述】:

是否可以不显示打开/保存对话框?我想将 pdf 文件直接保存到客户端 PC 上的特定磁盘位置。 NOdeJS 中的需要 我在 NodeJS 中自动登录,在成功登录后,单击“下载报告”应将 pdf 直接下载到计算机。在手动测试时会这样做。但是,当我在单击“下载报告”后运行我的脚本时,它会弹出一个 javascript 弹出窗口以确认保存。 -

【问题讨论】:

  • 我相信这是一个浏览器设置。这不是网站可以控制的。
  • 同意。但是,即使您在网络驱动程序打开新的 Firefox 窗口时进行浏览器设置,它仍会按照旧设置显示“保存确定”选项。我在 Selenium Webdriver 中处理过这个问题,但在 NodeJS 中却无法做到这一点。
  • FirefoxProfile 配置文件 = 新的 FirefoxProfile(); // zip 文件“aaplication/pdf”的 MIME 类型 // 设置自动下载 Neilsens Pdf 报告。 profile.setPreference("browser.download.manager.showWhenStarting",false); profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/pd‌​f"); profile.setPreference("plugin.disable_full_page_plugin_for_types","application‌​/pdf"); profile.setPreference("pdfjs.disabled", true); // 0 = 桌面,1 = 默认下载文件夹,2 = 用户定义的位置。 ——
  • 啊,您正在使用 selenium 来自动执行此操作。这改变了事情。我会添加一个答案。

标签: javascript node.js


【解决方案1】:

编辑:再次阅读您的评论后,我注意到您正在向您的个人资料添加一些设置,听起来他们应该让它做您想做的事情。由于它不起作用,我认为您最好尝试我在下面描述的内容。 结束编辑

您在评论中说您正在使用 Selenium Webdriver 自动登录,并且下载弹出窗口仅在 Selenium 驱动浏览器时出现。当 Selenium 处于控制状态时,它不保留您的设置(不显示弹出窗口)的原因是 Selenium 创建了一个具有默认设置的新配置文件。您需要为您的浏览器手动创建配置文件(我看到您使用的是 Firefox),使用该配置文件打开 Firefox,更改设置以不显示下载弹出窗口,并告诉 Selenium 在运行时使用该配置文件。

我不确定你的环境是什么,但是我从 linux 运行 Selenium,所以要创建一个新的配置文件,我从带有 -P 标志的命令行运行 Firefox,这会打开配置文件管理器。如果您使用 Windows,则可能需要寻找另一种方法来执行此操作。

创建配置文件并适当更改设置后,将代码更改为以下内容:

FirefoxProfile profile = new FirefoxProfile(new File("path/of/firefox/profile"));

希望这对你有用。

【讨论】:

  • 谢谢。我明白你在说什么,当我使用 Sel Webdriver 自动设置时,我已经完成了 FF 配置文件设置。我被要求将此代码转换为 NOde JS,但我不知道如何通过 Node 进行配置文件设置。
猜你喜欢
  • 2012-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多