Selenium 2自动化测试实战19(下载文件)
时间:2019-10-18
本文章向大家介绍Selenium 2自动化测试实战19(下载文件),主要包括Selenium 2自动化测试实战19(下载文件)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、下载文件
webDriver允许设置默认的文件下载路径,也就是说,文件会自动下载并且存放到设置的目录中。下面以火狐浏览器为例,执行文件的下载。
#downfile.py # -*- coding: utf-8 -*- from selenium import webdriver from time import sleep profile = webdriver.FirefoxProfile() profile.set_preference('browser.download.dir', 'd:\\') profile.set_preference('browser.download.folderList', 2) profile.set_preference('browser.download.manager.showWhenStarting', False) profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip') driver = webdriver.Firefox(firefox_profile=profile) driver.get('http://sahitest.com/demo/saveAs.htm') driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click() sleep(3) driver.quit()
为了让Firefox浏览器能实现文件下载,需要通过FirefoxProfile()对其做一些设置。
Browser.download.folderList 设置成0代表下载到浏览器默认下载路径,设置成2则可以保存到指定目录。
browser.download.manager.showWhenStarting 是否显示开始:True为显示,False为不显示
browser.download.dir 用于指定所下载文件的目录。os.getcwd()函数不需要传递参数,用于返回当前的目录。
browser.helperApps.neverAsk.saveToDisk 指定要下载页面的Content-type值,“application/zip”为文件的类型
HTTPContent-type常用对照表:http://tool.oschina.net/commons
这些参数的设置可以通过在Firefox浏览器地址栏输入:about:config进行设置,如下图所示
将所有设置信息在调用WebDriver的Firefox()方法时作为参数传递给浏览器。FireFox浏览器在下载时就根据这些设置信息将文件下载到当前脚本的目录下。
不同的浏览器设置方法会有所不同。通用的方法还是借助AutoIt来操作Windows控件进行下载。
原文地址:https://www.cnblogs.com/Rita-LJ/p/11698993.html
- 被遗忘的软件产品形态
- 区块链是什么,一文给您讲清楚
- ASP.NET MVC涉及到的5个同步与异步,你是否傻傻分不清楚?[下篇]
- 2017科技颠覆生活哪家强?
- 柯洁宣布复出,再次迎战AI!但对手不再是阿尔法狗……
- 【Scikit-Learn 中文文档】协方差估计 / 经验协方差 / 收敛协方差 / 稀疏逆协方差 / Robust 协方差估计 - 无监督学习 - 用户指南 | ApacheCN
- 先搞懂这八大基础概念,再谈机器学习入门!
- 人工智能化的传感器技术
- 带有CSS3的动画3D条形图
- 有故事的微信小游戏“跳一跳”
- 机器学习敲门砖:任何人都能看懂的TensorFlow介绍
- 跟小编来体验一下微信小程序
- DeepVO:基于深度循环卷积神经网络的端到端视觉里程计
- 是人工智障还是蹭热度?我一定是抱走了假的二次元老婆
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PG密码安全
- 如何利用Terraform工具编排管理TcaplusDB
- mysql隐式转换造成的查询结果不正确案例
- 【TBase开源版测评】体验安装
- 【Golang】go get遇到git fetch-pack: expected shallow list
- 聊聊dubbo-go的DefaultHealthChecker
- Java后端面试学习知识总结
- Spring框架源码脉络分析(一):IoC与容器、Bean和BeanDefinition
- Spring-Data-Redis 2.X以上版本使用心得和一些坑
- Java后端面试学习知识总结——数据库:MySQL
- Java 记一次自定义比较器中compareTo方法使用long强转int作为比较结果产生的bug
- SpringCloud 使用feign报错
- Java 使用Runtime在一个Java程序中启动和关闭另一个Java程序
- 解决虚拟机Centos7 报错 curl#56
- Java 桶排序实现 如何判断该放到哪个桶里