[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 ...
随机推荐
- hdu1251 字典树trie 模板题
//字典树模板题.题意:给一个库,每次查询,求以之为前缀的单词数量. #include<iostream> #include<string> #include<vecto ...
- 2017 ACM/ICPC Asia Regional Guangxi Online 记录
题目链接 Guangxi 感觉这场比赛完全是读题场啊…… 比赛过程中丢失了一波进度,最后想开题的时候已经来不及了…… Problem A 按题意模拟……按照那个矩阵算就可以了 #include &l ...
- python多线程(四)
原文:http://www.cnblogs.com/huxi/archive/2010/06/26/1765808.html 本文介绍了Python对于线程的支持,包括“学会”多线程编程需要掌握的基础 ...
- 使用css绘制六边形
用css绘制六边形需要使用到三个容器,分别用于绘制六边形的三个部分,如下图所示: 接下来,就是代码了: CSS: ;;border-top: 30px solid #6c6;border-left: ...
- IntelliJ IDEA插件-常用插件
IntelliJ IDEA的插件真的很多,最近的新版集成的插件已经基本够用,下面是收集的一些常用插件,根据需要来安装和测试.如果还是没有找到,那么自己来开发一个. 官网:https://plugins ...
- Vue.js 和 MVVM
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...
- 全能无线渗透测试工具,一个LAZY就搞定了
近来一直在研究无线安全方面的东西,特别是在无线渗透测试这块,每次渗透测试时总要来回不停的切换操作和挑选利器,很是麻烦.就想看看是否可以有一款功能全面的集合型工具. 正所谓功夫不负有心人,还真有这么一个 ...
- Android studio 百度地图开发(2)地图定位
Android studio 百度地图开发(2)地图定位 email:chentravelling@163.com 开发环境:win7 64位,Android Studio,请注意是Android S ...
- 【前端】怎样成长为一名优秀的前端project师---
浅谈本人的经验.也算是与大家交流吧,本人眼下也是从事前端的工作,时间并不长,说的不好,请见谅. 首先,前端project师必须得掌握HTML.CSS和JavaScript. 仅仅懂当中一个或两个还不行 ...
- 加载和执行 --《高性能JavaScript》
1.起因: 每次遇到<script> 标签时,页面必须停下来等待代码下载并执行完,然后再继续处理其他部分. 2.减少JavaScript对性能的影响 1.将所有的JavaScript文件放 ...