[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 ...
随机推荐
- 用CSS3变形创建半圆形导航
http://www.xuanfengge.com/create-a-semicircle-with-css3-variant-navigation.html demo:http://tympanus ...
- 深入爬虫书scrapy 之json内容没有写入文本
settings.py设置 ITEM_PIPELINES = { 'tets.pipelines.TetsPipeline': 300, } spider代码 xpath后缀添加.extract() ...
- Android Studio 2.0 Beta 5公布,修复几个与即时执行相关的严重BUG.
Android Studio 2.0 Beta 5公布,修复几个与即时执行相关的严重BUG. This build fixes a couple of important bugs related t ...
- BUPT复试专题—复数集合(?)
https://www.nowcoder.com/practice/abdd24fa839c414a9b83aa9c4ecd05cc?tpId=67&tqId=29643&rp=0&a ...
- 源码编译安装php
原文:https://klionsec.github.io/2017/11/23/phpsec/#menu After compile install php 5.3.1, I can not fin ...
- 用C++实现一个Log系统
提要 近期在写一些C++的图形代码,在调试和測试过程中都会须要在终端打印一些信息出来. 之前的做法是直接用 std::cout<<"Some Word"<< ...
- 从头学起-CLR的执行模型
1.将源代码编译成托管代码 公共运行时(Common Language Runtime) a.面向运行时的所有语言都可以通过异常报告错误 b.面向运行时的所有语言都可以创建线程 c.核心功能:管理内存 ...
- JavaScript 模拟键盘事件
JavaScript 模拟键盘事件和鼠标事件(比如模拟按下回车等) 2016年09月08日 15:23:25 神秘_博士 阅读数:41158 标签: javascript鼠标键盘事件模拟更多 个人分类 ...
- WebSocket 和 Socket 的区别
WebSocket 和 Socket 的区别 英文:TheAlchemist 链接:http://www.jianshu.com/p/59b5594ffbb0 <刨根问底 HTTP 和 We ...
- 死去活来的OC NSArray 中文排序 及输出
目的 1.NSArray 能够支持中文排序 2.NSLog 能够直接输出 NSArray 内的中文(事实上 java 直接打印数组也不能显示内容哈) 又是死去活来的搞了1个小时,分类实现.废话少说,上 ...