[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 ...
随机推荐
- Spring Batch 文档(中文)
http://blog.csdn.net/shorn/article/category/1186181
- jquery.fullPage.js全屏滚动插件
注:本文内容复制于http://www.51xuediannao.com/js/jquery/jquery.fullPage.html 和 http://www.360doc.com/content/ ...
- Oracle 12c在SQL Devolper中添加cdb和pdb连接
Oracle 12c如果按默认流程安装的话会有一个叫orcl的cdb容器和一个叫pdborcld的pdb容器 一.连接名为orcl的cdb容器 连接名:localorcl 用户名:SYS 口令:Ora ...
- Dfs学习经验(纸上运行理解DFS)【两道题】
首先我想吐槽的是,在CSDN上搞了好久还是不能发博客,就是点下发表丝毫反应都没有的,我稍微百度了几次还是没有找到解决方法,在CSDN的BBS上也求助过管理员但是没有收到答复真是烦躁,导致我新生入学以来 ...
- SystemTap 静态探针安装包
yum install systemtap-sdt-devel
- Oracle版本–EBS R12.1.1
select * from v$version; Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Productio ...
- 数据库系统学习(七)-SQL语言之复杂查询与视图
第七讲 SQL语言之复杂查询与视图 基本内容 子查询 IN与NOT IN谓词子查询 判断某一表达式的值是否在子查询的结构中 非相关子查询 相关子查询 theta some /theta all谓词子查 ...
- Mqtt协议IOS端移植3
ServerMqFramework.h #import "MqttFramework.h" @interface ServerMqFramework : MqttFramework ...
- Effective C++ 条款17 以独立语句将newed对象置入智能指针
对于函数: int priority(); void processWidget(std::tr1:: shared_ptr<Widget> pw,int priority); 调用 ...
- TListView使用方法1(转)
ListView1.Items 为标准 Tlistitems类 ListView1.Items (1)赋值 with ListView1.Items.Add do begin Caption:=cap ...