如何使用自定义的Firefox 配置文件保存文件?

参考: selenium - Access to file download dialog in Firefox - Stack Overflow

参考: http://blog.codecentric.de/en/2010/07/file-downloads-with-selenium-mission-impossible/

第一步是要确认自动保存文件的类型。

要确定你想要自动下载的内容类型,你可使用 curl:

curl -I URL | grep "Content-Type"

找到内容类型的另一种方法是使用 `requests <http://python-requests.org>`模块, 你可以像这样使用:

import requests
content_type = requests.head('http://www.python.org').headers['content-type']
print(content_type)

一旦内容类型被确认,你可以用它来设置firefox配置文件的偏好: browser.helperApps.neverAsk.saveToDisk 下面是一个例子:

import os

from selenium import webdriver

fp = webdriver.FirefoxProfile()

fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")

browser = webdriver.Firefox(firefox_profile=fp)
browser.get("http://pypi.python.org/pypi/selenium")
browser.find_element_by_partial_link_text("selenium-2").click()

在上面的例子中,application/octet-stream 被当作内容类型。

该 browser.download.dir 选项指定了你要下载文件的目录。

FirefoxProfile profile = new FirefoxProfile();

String path = "C:\\Test\\";
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", path);
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/msword, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream");
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.download.manager.focusWhenStarting", false);  
profile.setPreference("browser.download.useDownloadDir", true);
profile.setPreference("browser.helperApps.alwaysAsk.force", false);
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.download.manager.closeWhenDone", true);
profile.setPreference("browser.download.manager.showAlertOnComplete", false);
profile.setPreference("browser.download.manager.useWindow", false);
profile.setPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", false);
profile.setPreference("pdfjs.disabled", true);
       
driver = new FirefoxDriver(profile);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将一个完整的web页面(或者只是它当前的状态)保存为一个HTML文件。 更改版本16.1•“保存的页面信息”面板中的新“保存自”字段 •仅当使用资源加载器查看保存的页面时,菜单上才会显示“删除资源加载器” •改进了页面信息栏的外观 •重新保存保存的页面时,改进了保存文件中HTML的格式 •其他小的改进 • 修正了一些小错误。概述保存页面WE提供了一种简单的功能,可以将网页(如当前显示的)保存为单个HTML文件,该文件可以在任何浏览器中打开。保存的页面是原始页面的高度准确表示 Save Page WE是使用新的WebExtensions API实现的,可用于具有相同功能和用户界面的Firefox和Chrome。选项页面可以按以下方式访问“保存页面的WE选项”页面:•Firefox-在菜单栏上,选择“工具”>“附加组件”(或按Ctrl + Shift + A),选择“扩展”选项卡,然后单击“选项”按钮 •Chrome-右键单击工具栏按钮,然后选择选项。工具栏按钮安装“保存页面WE”后,主工具栏上将出现一个新的蓝色“软盘”按钮。要将网页另存为HTML文件,只需单击“保存页面WE”工具栏按钮。有一个选项可将按钮操作设置为:•保存基本项目•保存标准项目•保存自定义项目有一个选项可提示用户在保存文件时输入注释。有一些选项可以指定保存文件名的格式。请参阅下面的“保存文件名”部分。为了提示输入保存位置,必须将Chrome的“下载”选项设置为“在下载前先询问每个文件保存位置”。默认情况下,保存HTML文件的扩展名为'.html'。上下文菜单和按钮菜单要将网页另存为HTML文件,或对先前保存的页面执行操作,请右键单击页面内容以打开上下文菜单,选择“保存页面WE”子菜单,然后然后选择菜单项之一:•保存基本项目•保存标准项目•保存自定义项目•查看保存的页面信息•删除页面加载程序•提取图像/音频/视频或者,右键单击“保存页面WE”工具栏按钮以打开按钮菜单,然后选择菜单项之一。在上下文菜单上有一个显示/隐藏“保存页面WE”子菜单项的选项。注意,在查看保存的页面时,“提取图像/音频/视频”菜单项始终显示在上下文菜单中。键盘快捷方式要将网页另存为HTML文件,请按Alt + A。保存文件名有一个选项可以指定保存文件名的格式。保存整个页面和提取资源(图像/音频/视频)时使用此格式。保存文件名可能包含以下预定义字段:•%TITLE%-(保存页面)文档标题,如果为空,则与%FILE%相同•%TITLE%-(提取资源)与%FILE相同%•%DATE(x)%-YYYYxMMxDD格式的当前日期,其中“ x”是任何字符或可以省略 •%TIME(x)%-HHxMMxSS格式的当前时间,其中'x'是任何字符或可以省略 •%HOST%-页面或资源URL中的主机名•%PATH%-页面或资源URL中的路径,不带最终文件扩展名•%FILE%-路径最后一段中的文件(不带最终文件)扩展名有一些选项可以用用户定义的字符替换保存文件名中的空格,并设置保存文件名的最大长度。保存的项目保存基本项目-保存以下项目:•HTML元素•HTML图像文件(当前显示)•CSS样式表•CSS图像文件(当前显示)•CSS字体文件(此浏览器使用保存标准项目-保存基本项目项目和这些项目:•HTML图像文件(全部)•HTML音频和视频文件•HTML对象和嵌入文件•CSS字体文件(任何浏览器均不可用)保存自定义项目-保存基本项目和从此列表中选择的项目: •HTML图像文件(所有)•HTML音频和视频文件•HTML对象和嵌入文件•CSS图像文件(所有)•CSS字体文件(对于任何浏览器均不可用)•CSS字体文件(所有)•脚本(同源)注意,跨域框架中的脚本永远不会保存保存页面时,有一个选项可以保留跨原点的框架。请注意,跨域iframe通常包含广告或访问者评论。有一个选项可以合并重复CSS图像(以减小保存文件大小)。有一个选项可在已保存页面的顶部包括一个信息栏。有一个选项可以在已保存文件中包括指标和资源摘要。有一个选项可以设置保存的嵌套帧/ iframe的最大深度。有一个选项可以清除已被页面本身,页面编辑器(例如Print Edit WE)或内容阻止程序(例如uBlock Origin)隐藏的元素。配置CHROME转到Chrome菜单按钮>设置>高级。在“下载”部分中,设置下载文件夹位置,然后启用或禁用“在下载前询问在哪里保存每个文件”选项。保存页面后,下载项将出现在浏览器窗口底部的下载栏中。单击下载项目中的箭头,然后启用或禁用“始终打开此类型的文件”选项。加载资源有一个选项可以设置大型或重复引用的资源所允许的最大大小。有一个选项可以设置允许加载单个资源的最长时间。有一个选项可以强制

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值