selenium java 文件上传、下载
1.webdriver对页面文件的下载
我们一般操作浏览器下载时会让我们选择下载的目录然后经过一系列操作后才进行文件下载操作,但是用webdriver不能按这样的方式操作。经过查询资料找到了如下的实现方式。首先在初始化浏览器对象时需要设置浏览器的配置文件。需要先配置browser.download.folderList设置为2,默认为0表示默认现在路径,设置为2时是保存到指定目录。browser.download.manager.showWhenStarting
这是设置是否显示开始框用的,我们默认设置为false;browser.download.dir
这个是设置保存文件下载的位置,最后是最重的属性:
browser.helperApps.neverAsk.saveToDisk,这是设置文件下载的类型的。
如果这个配置与所下载类型不符合的话,下载会出现问题。
具体实例如下:
firefoxprofile = new FirefoxProfile();
firefoxprofile.setPreference("browser.download.folderList", 2);
firefoxprofile.setPreference("browser.download.manager.showWhenStarting",false);
firefoxprofile.setPreference("browser.download.dir", "C:\\自动化");
firefoxprofile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream,"+ " application/vnd.ms-excel, text/csv, application/zip, application/exe");
driver = new FirefoxDriver(firefoxprofile);
2.webdriver实现文件上传
一般在页面上传文件的插件会弹出一个选择文件位置,这对于我们自动化测试来说是个难题。一般有两种解决方法(1)使用autoit工具来模仿鼠标操作点击页面弹出来的插件选择文件位置。该方法有个缺点就是极不稳定而且和屏幕分辨率有关,所以不多叙述(2)通过页面元素找到插件位置,在input的标签对中输入文件所在位置来达到上传文件的效果。下面就来仔细讲解一下这方面我的个人见解。
首先我们需要页面中定位到对应上传文件的按钮,
找到这个元素后使用sendKeys()的方法将你所需上传文件的绝对路径名输入进去,就达到了选择文件的目的。
selenium java 文件上传、下载的更多相关文章
- 2013第38周日Java文件上传下载收集思考
2013第38周日Java文件上传&下载收集思考 感觉文件上传及下载操作很常用,之前简单搜集过一些东西,没有及时学习总结,现在基本没啥印象了,今天就再次学习下,记录下自己目前知识背景下对该类问 ...
- python3 + selenium 之文件上传下载
文件上传 文件上传下载的联系html: uplad.html <html> <head> <meta http-equiv="content-type" ...
- Java文件上传下载原理
文件上传下载原理 在TCP/IP中,最早出现的文件上传机制是FTP.它是将文件由客户端发送到服务器的标准机制. 但是在jsp编程中不能使用FTP方法来上传文件,这是由jsp运行机制所决定的 文件上传原 ...
- java文件上传下载
文件上传首先要引入两个核心包 commons-fileupload-1.2.1.jar commons-io-1.4.jar 下面是对文件上传和下载的一些代码做的一个简单封装,可以方便以后直接使用[使 ...
- java文件上传下载组件
需求: 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验: 内网百兆网络上传速度为12MB/S 服务器内存占用低 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包 ...
- java 文件上传 下载 总结
首先引入2个jar  String pat ...
- java文件上传下载解决方案
javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...
- [Java] 文件上传下载项目(详细注释)
先上代码,最上方注释是文件名称(运行时要用到) FTServer.java /* FTServer.java */ import java.util.*; import java.io.*; publ ...
随机推荐
- Redis的数据结构之字符串
五种数据类型: 字符串(String) 字符串列表(list) 有序字符串集合(sorted set) 哈希(hash) 字符串集合(set) Key定义的注意点: 不要过长, 不要过短, 统一的命名 ...
- MongoDB "$" 字符 下标位置
我们可以修改列表里面元素的名字 例如: 修改age=34的数据,hobby里面的"足球"改为"网球" }) { "_id" : Object ...
- VUE—打印(原生态网页打印)
//打印触发的方法 print(e){ let subOutputRankPrin = document.getElementById('printcode'); var options = { fo ...
- 用maven创建一个web项目
下面所使用的Eclipse开发工具为Eclipse Java EE IDE 版本. 1.创建一个maven项目,如图所示: 选择“maven-archetype-webapp”,如图所示: 后面几步按 ...
- .net core 配置
.net core 配置包括很多种 例如内存变量.命令行参数.环境变量以及物理文件配置和自定义配置 物理文件配置主要有三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfi ...
- SQL 增加列、修改列、删除列
SQL语句增加列.修改列.删除列 1.增加列: alter table tableName add columnName varchar(30) 2.1. 修改列类型: alter table tab ...
- Python 函数中,参数是传值,还是传引用?
在 C/C++ 中,传值和传引用是函数参数传递的两种方式,在Python中参数是如何传递的?回答这个问题前,不如先来看两段代码. 代码段1: def foo(arg): arg = 2 print(a ...
- Python 两个星号(**)的 参数
将参数以字典的形式导入
- LinkedHashMap和HashTable
LinkedHashMap: 继承了HashMap: 其中,key不允许重复是Map接口就有的性质: HashTable: 同步的,意味着是单线程,意味着线程安全的,但是速度慢,和List接口集合的子 ...
- 使用addeventlistener为js动态创建的元素添加事件监听
点击li弹出内容,并且动态添加li之后有效 <button onclick="addFunction()">点我增加</button> <ul> ...