webdriver高级应用- 无人工干预地自动下载某个文件
在网页上下载文件时,通常需要人为设定下载文件并选择保持路径,这样就无法实现完全自动的下载过程。下面实现基于firefox浏览器的全自动化文件下载操作:
#encoding=utf-8
from selenium import webdriver
import unittest, time class TestDemo(unittest.TestCase): def setUp(self):
# 创建一个FirefoxProfile实例,用于存放自定义配置
profile = webdriver.FirefoxProfile() #chrome是另外的设置方法
# 指定下载路径,默认只会自动创建一级目录,如果指定了
# 多级不存在的目录,将会下载到默认路径
profile.set_preference('browser.download.dir', 'd:\\iDownload')
# 将browser.download.folderList设置为2,表示将文件下载到指定路径
# 设置成2表示使用自定义下载路径;
# 设置成0表示下载到桌面;设置成1表示下载到默认路径
profile.set_preference('browser.download.folderList', 2)
# browser.helperApps.alwaysAsk.force对于未知的 MIME 类型文件会弹出窗口
# 让用户处理,默认值为true,设定为False表示不会记录打开未知 MIME 类型
# 文件的方式
profile.set_preference("browser.helperApps.alwaysAsk.force", False)
# 在开始下载时是否显示下载管理器
profile.set_preference('browser.download.manager.showWhenStarting',\
False)
# 设定为 False 会把下载框进行隐藏
profile.set_preference("browser.download.manager.useWindow", False)
# 默认值为 true,设定为 False 表示不获取焦点
profile.set_preference("browser.download.manager. focusWhenStarting",\
False)
# 下载.exe文件弹出警告,默认值是 true,设定为False 则不会弹出警告框
profile.set_preference("browser.download.manager.alertOnEXEOpen",\
False)
# browser.helperApps.neverAsk.openFile表示直接打开下载文件,不显示确认框
# 默认值为空字符串,下行代码行设定了多种文件的 MIME类型,
# 例如application/exe,表示.exe类型的文件,
# application/excel表示 Excel 类型的文件
profile.set_preference("browser.helperApps.neverAsk.openFile", \
"application/pdf")
# 对所给出文件类型不再弹出框进行询问,直接保存到本地磁盘
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', \
'application/zip, application/octet-stream')
# browser.download.manager.showAlertOnComplete设定下载文件结束后是否显示下
#载完成提示框,默认为true,设定为False表示下载完成后不显示下载完成提示框
profile.set_preference("browser.download.manager. showAlertOnComplete",\
False);
# browser.download.manager.closeWhenDone设定下载结束后是否自动
# 关闭下载框,默认值为true,设定为False 表示不关闭下载管理器
profile.set_preference("browser.download.manager.closeWhenDone",\
False) # self.driver = webdriver.Ie(executable_path="c:\\IEDriverServer")
# 启动浏览器时,通过firefox_profile参数
# 将自动以配置添加到FirefoxProfile对象中
self.driver = webdriver.Firefox(executable_path="e:\\geckodriver",\
firefox_profile = profile) def test_dataPicker(self):
# 访问WebDriver驱动Firefox的驱动文件下载网址
url1 = "https://github.com/mozilla/geckodriver/releases"
self.driver.get(url1)
# 选择下载zip类型文件,使用application/zip指代此类型文件
self.driver.find_element_by_xpath\
('//strong[.="geckodriver-v0.19.1-arm7hf.tar.gz"]').click()
# 等待加载下载文件
time.sleep(10) # 访问Python2.7.12文件下载页面,下载扩展名为msi文件
# 使用application/octet-stream来指明此类文件类型
url = "https://www.python.org/downloads/release/python-2712/"
self.driver.get(url)
# 找到Python2.7.12下载页面中链接文字为“Windows x86-64 MSI installer”
# 的链接页面元素,点击进行无人工干预的下载Python2.7.12解释器文件
self.driver.find_element_by_link_text\
("Windows x86-64 MSI installer").click()
# 等待文件下载完成,根据各自的网络带宽情况设定等待相应的时间
time.sleep(100) def tearDown(self):
self.driver.quit() if __name__ == '__main__':
unittest.main()
webdriver高级应用- 无人工干预地自动下载某个文件的更多相关文章
- selenium3 无人工干预地自动下载某个文件
一:主要内容 下载效果展示 代码内容展示 saveToDisk不生效说明,即文件没有下载下来解决办法 二:展示效果 1.下载效果展示 用selenium3无人工干预的自动下载该文件到指定路径下,如:D ...
- webdriver高级应用- 无人工干预地自动上传附件
方法一:使用webdriver的send_keys方法上传文件,代码如下: #encoding=utf-8 from selenium import webdriver import unittest ...
- IDM下载器添加支持自动下载的文件类型
不知道各位读者老爷有没有试过IDM下载器的自动下载功能,对于经常需要下载素材资源的朋友来说,一个个的选择图片或者其他什么素材来下载也是够烦的,IDM的自动下载功能可谓是十分好用,而且自动下载+批量下载 ...
- webdriver高级应用- 使用Chrome浏览器自动将文件下载到指定路径
#encoding=utf-8 from selenium import webdriver import unittest, time class TestDemo(unittest.TestCas ...
- 【转】Python编程: 多个PDF文件合并以及网页上自动下载PDF文件
1. 多个PDF文件合并1.1 需求描述有时候,我们下载了多个PDF文件, 但希望能把它们合并成一个PDF文件.例如:你下载的数个PDF文件资料或者电子发票,你可以使用python程序合并成一个PDF ...
- C# 利用FTP自动下载xml文件后利用 FileSystemWatcher 监控目录下文件变化并自动更新数据库
using FtpLib; using System; using System.Collections.Generic; using System.ComponentModel; using Sys ...
- yandex 图片自动下载
yandex 图片自动下载命令行程序 一个在 yandex 上搜索图片并下载到本地的 node cli 程序. 使用帮助: $0 <搜索关键词> [-t=超时(默认 1000)] [-r ...
- 【转】Java生成plist下载ipa文件
我们在上传ipa想要安装的时候必须要通过plist文件去下载,并且还要遵循 itms-services协议. 意思就是,第一步我们要生成一个plist文件, 第二步生成一个html文件,用来指向pli ...
- python使用selenium,webdriver自动下载百度网盘内容
想实现一个自动下载微信公众号分享百度网盘图片链接的爬虫,使用selenium和火狐的webdriver进行完成 1.首先根据自己的浏览器下载相应的webdriver驱动器,python中导入selen ...
随机推荐
- vue-cli3项目中解决动态引入图片img404的问题
博主最近手头再做一个项目,需要调用天气接口,并且还要动态显示天气相关图片icon. 本来以为没什么大问题,结果硬生生被这个动态图片路径搞得民不聊生(博主还是 too young,too simple~ ...
- eclipse3.4+对的处理插件(附SVN插件安装实例)
Eclipse 3.4以前安装插件无非有两种方式, 直接copy插件到features/plugins目录或者在links目录下创建链接文件. Eclipse 3.4又推出另一种新的安装途径, 更加灵 ...
- Python + selenium之组织unittest单元测试用例
当增加被测功能和相应的测试用例之后unittest单元测试框架如何扩展和组织新增的测试用例的. # coding =utf-8 # calculator class Count (): def __i ...
- vue搭建骨架屏步骤配置
1.什么是骨架屏幕? 在页面加载数据之前,有一段空白时间,要么用loading加载,要么就用骨架屏. 在开发webapp的时候总是会受到首屏加载时间过长的影响,主流的解决方法是在载入完成之前显示loa ...
- 新萝卜家园GHOST WIN7系统32,64位官方版下载
来自系统妈:http://www.xitongma.com 新萝卜家园GHOST win7系统64位官方经典版 V2016年3月 系统概述 新萝卜家园ghost win7系统64位官方经典版加快“网上 ...
- Unity中的各种寻找GameObject方法归纳
1.GameObject.Find():寻找Hierarchy面板中的activie 不为false的游戏对象: 路径如官方事例写法: public class ExampleClass : Mono ...
- UVA11019 Matrix Matcher (AC自动机)
二维的矩阵匹配,把模式矩阵按列拆开构造AC自动机,记录行号(为了缩点判断). 把T矩阵按行匹配,一旦匹配成功,在假想的子矩阵左上角位置加一.最后统计总数. 因为所有模式串长度一样,不用维护last数组 ...
- UVA 1619 Feel Good 感觉不错 (扫描法)
Feel Good Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu Bill is deve ...
- Robot Framework(一)入门
1.1简介 Robot Framework是一个基于Python的,可扩展的关键字驱动的测试自动化框架,用于端到端验收测试和验收测试驱动开发(ATDD).它可用于测试分布式异构应用程序,其中验证需要涉 ...
- Hicharts图表的使用
Hicharts图表的使用 引用 在4.0之后就不需要jQuery了,z这里是用ajax向后台发送数据 引入js或者CDN,这里采用的是引入js的方式 在Hicarts文件中的index中查看相应的图 ...