[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 ...
随机推荐
- python--输出自己需要的字符串连接的的方式
python中有很多字符串连接方式,今天在写代码,顺便总结一下,从最原始的字符串连接方式到字符串列表连接,大家感受下: 最原始的字符串连接方式:str1 + str2 python 新字符串连接语法: ...
- Java的常用对象
PO:持久对象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每个属性基本上都对应数 ...
- 在C#中使用Json.Net进行序列化和反序列化及定制化
序列化(Serialize)是将对象转换成字节流,并将其用于存储或传输的过程,主要用途是保存对象的状态,以便在需要时重新创建该对象:反序列化(Deserialize)则是将上面的字节流转换为相应对象的 ...
- T1191 数轴染色 codevs
http://codevs.cn/problem/1191/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Descr ...
- python爬虫遇到10060
python爬虫遇到10060 学习了:https://blog.csdn.net/wetest_tencent/article/details/51272981 可以设置代理,可以手动进行图片获取:
- 根据wsdl反向生成webservice服务端(3种方法)
前言 正常情况下,都是我们项目组创建一个webservice服务端,客户通过我们提供的wsdl地址生成客户端并进行访问:但是最近和一个国企做接口对接,他们却只提供给我们wsdl,需要我们根据wsdl生 ...
- SQL经常使用语法
一.基础 1.创建数据库 CREATE DATABASE database-name 2.删除数据库 drop database dbname 3.备份sql server --- 创建 备份数据的 ...
- ajax请求后台交互json示例
ajax请求,首先需要服务器(首先你需要node) npm i -g http-server 其次,进入当前目录(默认服务器端口8080) http-server 点击进入:localhost:808 ...
- Windows-速度优化的几个方面
One. Win+R - > cmd- > msconfig 禁用不需要的启动项! Two. 关闭一些视觉选项 Three. 设置应用启动快捷键
- dom get selector
function realsQuery(element) { if(!element){ return ""; } var currentQuery=""; i ...