[Selenium] WebDriver 操作文件系统
1)屏幕截图
接口函数是 TakesScreenshot
示例:
import java.io.File;
import org.apache.commons.io.FileUtils;
public void testTakesScreenshot() throws Exception{
//TakesScreenshot接口提供了getScreenshotAs 方法截取屏幕,这里指定OutputType.FILE 作为参数将截屏以文件形式返还
File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
//使用FileUtils 类的copyFile 方法保存返还的文件对象
FileUtils.copyFile(srcFile, new File("/Selenium 2/screenshot.png"));
}
2)复制文件
文件操作类FileHandler
示例:
import java.io.File;
import java.io.IOException;
//将源目录下所有文件复制的目的目录下
FileHandler.copy(new File("/source_directory"), new File("/destination_directory"));
//将指定文件从源目录复制到目的目录
FileHandler.copy(new File("/source_directory/file.txt"), new File("/destination_directory/file.txt"));
//将以suffix.txt 为扩展名的所有文件从源目录复制到目的目录
FileHandler.copy(new File("/path/of/source_directory"), new File("/destination_directory"), "suffix.txt");
3)创建目录
FileHandler.createDir()方法创建目录
示例:
import org.openqa.selenium.io.FileHandler;
FileHandler.createDir(new File("/new_created_directory"));
4)删除目录
FileHandler.delete()方法删除目录
示例:
import java.io.File;
import org.openqa.selenium.io.FileHandler;
FileHandler.delete(new File("/new_created_directory"));
5)读取文件
FileHandler.readAsString()方法
示例:
import java.io.File;
import jave.io.IOException;
String file = FileHandler.readAsString(new File("/directory/fileToRead.txt"));
System.out.println(file);
6)压缩目录
压缩操作对应需要从远程机器获取大量的日志文件或截屏文件而言非常有效。zip类的使用方法如下,包括压缩和解压缩:
import java.io.File;
import java.io.IOException;
import org.openqa.selenium.io.Zip;
...
String FileName = "/final_directory/zipped_file.zip";
Zip zip = new Zip();
try{
//把指定目录下所有文件打包压缩成单个 zip 文件
zip.zip(new File("/directory_to_zip"), new File(FileName ));
//判断一个文件是否为压缩文件
System.out.println(Filehandle.isZipped(FileName ));
//将一个zip 文件解压缩
zip.unzip(new File(FileName), new File("/final_directory"));
}catch(IOException e){
e.printStackTrace();
}
7)临时目录操作
操作临时文件系统的类TemporaryFilesystem
示例:
import java.io.File;
import org.openqa.selenium.io.TemporaryFilesystem;
...
File tempDirectory = TemporaryFilesystem.getDefaultTmpFS().createTempDir("prefix", "suffix");
//获取临时目录的绝对路径
System.out.println(tempDirectory.getAbsolutePath());
//获取临时目录可用空间
System.out.println("Free Space of Temporary Directory is : " + tempDirectory.getFreeSpace());
...
8)文件权限操作
FileHandler 调整文件权限
示例:
...
if (! FileHandler.canExecute(new File("/directory/file1.sh"))){
try{
FileHandler.makeExecutable(new File("/directory/file1.sh"));
}catch (IOException e){
e.printStackTrace();
}
try{
FileHandler.makeWritable(new File("/directory/file2.txt"));
}
catch (IOException e){
e.printStackTrace();
}
}
[Selenium] WebDriver 操作文件系统的更多相关文章
- Selenium Webdriver——操作隐藏的元素(二)display属性
有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框, ...
- Selenium Webdriver——操作隐藏的元素(三)switchTo().frame()
在web 应用中经常会遇到frame 嵌套页面的应用,页WebDriver 每次只能在一个页面上识别元素,对于frame 嵌套内的页面上的元素,直接定位是定位是定位不到的.这个时候就需要通过switc ...
- Selenium Webdriver——操作隐藏的元素
有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框, ...
- selenium webdriver操作各浏览器
描述 本文主要是针对Chrome 62 , firefox57 ,和IE11 三个版本的操作.相关的driver .可点击以下链接.所有的driver 建议放在浏览器的目录下,本文中所有的driver ...
- Selenium Webdriver——操作隐藏的元素display属性
有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框, ...
- Selenium webdriver 操作日历控件
一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 比如: 但是,有的日期控件是readonly的 比如1 ...
- Selenium webdriver 操作chrome 浏览器
Step1: 下载chromedriver. 下载路径: http://chromedriver.storage.googleapis.com/index.html 选择一个合适的下载即可.我下载的是 ...
- Selenium webdriver 操作IE浏览器
V1.0版本:直接新建WebDriver使用 import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetE ...
- [Selenium] WebDriver 操作 HTML5 中的 drag/drop
以 jQuery UI 官方网站元素测试,地址:http://jqueryui.com/draggable/ 示例: package com.learningselenium.html5; impor ...
随机推荐
- grafana 安装 和 Nginx 、EL 联调
https://blog.csdn.net/u010735147/article/details/80943593
- ZOJ 1112 Dynamic Rankings【动态区间第K大,整体二分】
题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1112 题意: 求动态区间第K大. 分析: 把修改操作看成删除与增加 ...
- 解决Linux系统没有/etc/sysconfig/iptables文件
Linux系统中,防火墙默认是不开启的,一般也没有配置过任何防火墙的策略,所以不存在/etc/sysconfig/iptables文件. 一.常规解决方法: 1.在控制台使用iptables命令随便写 ...
- open-falcon的插件机制
Plugin可以看做是对agent功能的扩充.对于业务系统的监控指标采集,最好不要做成plugin,而是把采集脚本放到业务程序发布包中,随着业务代码上线而上线,随着业务代码升级而升级,这样会比较容易管 ...
- EBS OAF开发中怎样实现功能页签(Global Tab)
EBS OAF开发中怎样实现功能页签(Global Tab) (版权声明.本人原创或者翻译的文章如需转载.如转载用于个人学习,请注明出处.否则请与本人联系,违者必究) 功能页签的实现不须要不论什么编码 ...
- redux 及 相关插件 项目实战
目录结构 +-- app | +-- actions | +-- index.js | +-- components | +-- content.js | +-- footer.js | +-- se ...
- 微信小程序 项目实战(二)board 首页
1.项目结构 2.页面 (1)数据(逻辑) board.js // pages/board/board.js Page({ /** * 页面的初始数据 */ data: { imgWrap: [] } ...
- CS 和 BS 的区别和优缺点(转)
转自:http://www.cnblogs.com/scnuyz/p/5808808.html bs是浏览器(browser)和服务器(server) cs是静态客户端程序(client)和服务器(s ...
- Web优化 --利用css sprites降低图片请求
sprites是鬼怪,小妖精,调皮鬼的意思,初听这个高端洋气的名字我被震慑住了,一步步掀开其面纱后发觉非常easy的东西.作用却非常大 什么是CSS Sprites CSS Sprites是指把网页中 ...
- HDU 1040 As Easy As A+B [补]
今天去老校区找她,不想带电脑了,所以没时间A题了 /*******************************************************************/ As Ea ...