Selenium自动化下载文件Firefox配置教程
在上一篇文章中有提到【使用Selenium server standalone实现定时web自动化下载电影】,这只是实现了下载脚本和Selenium server的部署,但在实际下载过程中,这样的设置还是不够的。
大家都知道Firefox在下载文件的时候,会弹出一个确认对话框,让用户选择是直接打开还是保存到指定的文件路径,但这个弹出对话框是浏览器客户端层面的,Selenium脚本是无法控制的。
虽然,我们可以通过其他的方式实现对这个弹出框的操作,请参考
【利用Robot Framework+Selenium2Library和AutoItLibrary】来实现对于Windows GUI的控制。
但本文探讨如何以Selenium方式,不借助其他工具和方法。既然无法Selenium无法控制,我们能不能绕过这个弹出框,让它点击下载后默认自动保存到指定文件路径呢?答案是肯定的。
打开Firefox->工具->选项,或者直接输入【about:preferences】进入通用设置,选择保存到指定文件路径。设置好后,让我们点击一个文件进行下载,奇怪?怎么不生效!还是会有弹出窗口…….
原来这个设置只对相应的文件生效,让我们找到这个相应的文件进行配置。
点击【应用程序】,搜索exe,在操作选项选择【保存文件】。因为要下载电影,格式为【rmvb】,怎么搜索没有任何结果?可以百度一下【rmvb content-type】,这里直接贴上对照表:http://tool.oschina.net/commons
虽然这个对照表包含了绝大多数的类型对照,但总有漏网之鱼,例如【.war】文件就没有在对照表上面。不用着急,我们可以自己查看网络传输的内容来获取。
打开浏览器,按F12调出开发者工具,在网络[network]中找到这个文件,可以查看它的[Content-Type]了,就是那么easy~
找到了文件的Content-Type,如何添加到应用程序列表上,让它识别呢?
在Firefox中输入【about:config】进入浏览器配置页面,在搜索中输入【browser.helperApps.neverAsk.saveToDisk】
双击进入编辑,在【Value】中输入之前找到的Content-Type
大功告成,所有配置都设置好了,但默认这些设置被保存在当前Firefox的Profile。而Selenium在启动的时候默认是新建一个profile,全新的空的干净浏览器来运行,这些设置相当于白干,别急。让我们来指定Selenium启动Firefox时的Profile。
打开文件夹【C:\Users\XXX\AppData\Roaming\Mozilla\Firefox\Profiles】
但是此目录下生成的Profile的文件名是自动产生的一串数字,如何对Firefox Profi进行管理呢?
1、关闭所有Filefox浏览窗口
2、运行Firefox Manager,点击windows“开始”–>“运行”,然后在输入框输入firefox.exe -ProfileManager,点击“确定”按钮
3、创建一个新的Profile,只需点击“创建配置文件”按钮,在接着出现的向导窗口里输入配置文件名”seo”
现在就创建了一个独立的Firefox Profile配置文件,你可以将你的设置、首选项、和一些插件设置等保存在你的个人配置文件中。记住产生的配置文件名称所对应的目录名。
修改启动Selenium Server Standalone的代码:
java -jar C:\test\selenium-server-standalone-2.53.1.jar-htmlSuite "*firefox" "http://www.baidu.com" "C:\test\Baidu.html" "C:\test\report.html" -log selenium-alone.log -browserTimeout 9999 -timeout 9999999999 -firefoxProfileTemplate "C:\Users\XXX\AppData\Roaming\Mozilla\Firefox\Profiles\v4f5xsv1.Selenium"
-timeout 9999999999 指定了整个Selenium server的超时时间,由于下载比较大的文件需要很长时间,尽可能设置常一点的时间
-firefoxProfileTemplate 指定了Profile进行启动,这样可以把刚才对于文件类型设置和默认不弹框的配置加载进来。
当然可以在执行完Selenium脚本后进行调用批处理Batch命令,进行自动关机。
shutdown -s -t 60
Selenium自动化下载文件Firefox配置教程相关推荐
- Selenium 实现下载文件 Firefox,Chrome
下载文件 WebDriver 允许我们设置默认的文件下载路径,也就是说文件会自动下载到我们设置的目录中,不同的浏览器设置方法不同 下面先以Firefox为例子,演示下载 import time fro ...
- jdk eclipse SDK下载安装及配置教程
原文地址https://blog.csdn.net/dr_neo/article/details/49870587 最新鲜最详细的Android SDK下载安装及配置教程 最近Neo突发神经,想要将学 ...
- Selenium+Python 下载文件与上传文件
Selenium+Python 下载文件与上传文件 目录 下载文件功能 谷歌浏览器下载设置 切换iframe框架 鼠标悬浮元素定位 鼠标悬浮后出现的元素定位 上传文件 切换句柄 利用AutoIt进行桌 ...
- python selenium下载对话框_Selenium+Python:下载文件(Firefox 和 Chrome)
引自 https://blog.csdn.net/Momorrine/article/details/79794146 1. 环境 操作系统 Win10 IDE Eclipse (Oxyg ...
- python selenium 下载文件_python+selenium下载文件——firefox
from selenium import webdriver import time fp = webdriver.FirefoxProfile() fp.set_preference('browse ...
- Python+selenium 自动化-mac下安装配置chrome驱动方法
我的 Python 版本有两个,先通过 which 看一下对应版本的位置. 然后找到 python 安装目录里的 bin 文件夹,把对应的驱动放里面就好了. 如果不知道怎么匹配对应 chrome 版本 ...
- Python+selenium之下载文件
一.Firefox文件下载 Web容许我们设置默认的文件下载路劲,文件会自动下载并且存放在指定的目录下. from selenium import webdriver import os fp = w ...
- python selenium 火狐下载文件
注意: 1.需要加载 browser.helperApps.neverAsk.saveToDisk 选择,其值 application/x-msdownload 为Mine_type类型.该类型需要在 ...
- 用Selenium 爬虫下载文件,解除Chrome 下载警告 (Keep or Discard),设置下载目录的方法
写在前面的话 我们的描述,运用都是基于Ubuntu 的运行环境 Chrome : Version 77.0.3865.90 (Official Build) (64-bit) OS : Ubuntu ...
最新文章
- Windows 不能在 本地计算机 启动 SQL Server 。错误代码126.
- HBase shell 中的十六进制数值表示
- This relative module was not found ./cptable webpack
- 理解typedef(转)
- SpringCloud工作笔记038---spring cloud-简单网关权限控制_直接在zuul里面做
- JVM垃圾收集器笔记整理
- python中的三种排序方法,使用冒泡对列表排序,使用自带sort方法进行排序
- 算法:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
- html生物代码,方块方舟全物品代码 生物召唤代码大全
- 网络协议之UDP数据包
- warning: #61-D: integer operation result is out of range
- 惠普计算机进入安全模式,Windows10系统惠普电脑快速进入安全模式的方法
- Ubuntu桌面管理器
- 有权最短路径问题:狄克斯特拉(Dijkstra)算法 Java 实现
- 计算机视频追踪方向,基于深度学习的目标视频跟踪算法综述
- 【设计指南】避免PCB板翘,合格的工程师都会这样设计!
- 0016 c/c++语言 二进制转换为十进制
- 路由器如何让设置桥接模式
- 微信团队分享:微信每日亿次实时音视频聊天背后的技术解密
- Python数据分析之商品数据分析
热门文章
- 计算机安全模式都进不了系统,win10电脑安全模式都进不去怎么办
- PaddlePaddle/PaddleOCR 中英文文字识别
- 2022河南联赛第(二)场:河南理工大学 ---复盘
- System.IO.Stream 中Flush函数的用法
- 大数据金融,这个“跨界整合”会带来什么
- 图像的模式(RGB和CMYK)、通道(8位、16位、32位)分别有什么作用
- C# 操作MongoDB时间 时差问题
- epics安装css,EPICS-synApps/areaDetector安装
- 三阶魔方大中小魔公式_三阶魔方还原公式
- VirtualBox报错:不能为虚拟电脑XXX打开一个新任务