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 操作文件系统的更多相关文章

  1. Selenium Webdriver——操作隐藏的元素(二)display属性

    有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框, ...

  2. Selenium Webdriver——操作隐藏的元素(三)switchTo().frame()

    在web 应用中经常会遇到frame 嵌套页面的应用,页WebDriver 每次只能在一个页面上识别元素,对于frame 嵌套内的页面上的元素,直接定位是定位是定位不到的.这个时候就需要通过switc ...

  3. Selenium Webdriver——操作隐藏的元素

    有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框, ...

  4. selenium webdriver操作各浏览器

    描述 本文主要是针对Chrome 62 , firefox57 ,和IE11 三个版本的操作.相关的driver .可点击以下链接.所有的driver 建议放在浏览器的目录下,本文中所有的driver ...

  5. Selenium Webdriver——操作隐藏的元素display属性

    有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框, ...

  6. Selenium webdriver 操作日历控件

    一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 比如: 但是,有的日期控件是readonly的 比如1 ...

  7. Selenium webdriver 操作chrome 浏览器

    Step1: 下载chromedriver. 下载路径: http://chromedriver.storage.googleapis.com/index.html 选择一个合适的下载即可.我下载的是 ...

  8. Selenium webdriver 操作IE浏览器

    V1.0版本:直接新建WebDriver使用 import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetE ...

  9. [Selenium] WebDriver 操作 HTML5 中的 drag/drop

    以 jQuery UI 官方网站元素测试,地址:http://jqueryui.com/draggable/ 示例: package com.learningselenium.html5; impor ...

随机推荐

  1. a href="javascript:void(0)"

    JavaScript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值. void 操作符用法格式如下: 1. javascript:void (expression) 2. javas ...

  2. Codeforces Round #511 (Div. 2) C. Enlarge GCD

    题目链接 题目就是找每个数的最小素因子,然后递归除,本来没啥问题,结果今天又学习了个新坑点. 我交了题后,疯狂CE,我以为爆内存,结果是,我对全局数组赋值, 如果直接赋值,会直接在exe内产生内存,否 ...

  3. Flutter学习(一)——搭建开发环境(Windows)

    久闻 Flutter 大名,今天终于有时间体验一下了 ٩(๑>◡<๑)۶ 官网:https://flutter.dev/ 中文官网:https://flutterchina.club/ 一 ...

  4. MySQL什么时候会使用内部临时表?

    1.union执行过程 首先我们创建一个表t1 create table t1(id int primary key, a int, b int, index(a)); delimiter ;; cr ...

  5. asp.net core系列 65 正反案例介绍SOLID原则

    一.概述 SOLID五大原则使我们能够管理解决大多数软件设计问题.由Robert C. Martin在20世纪90年代编写了这些原则.这些原则为我们提供了从紧耦合的代码和少量封装转变为适当松耦合和封装 ...

  6. [bzoj3622]已经没有什么好害怕的了_动态规划_容斥原理

    bzoj-3622 已经没有什么好害怕的了 题目大意: 数据范围:$1\le n \le 2000$ , $0\le k\le n$. 想法: 首先,不难求出药片比糖果小的组数. 紧接着,我开始的想法 ...

  7. Java开发笔记(一百零一)通过加解锁避免资源冲突

    前面介绍了如何通过线程同步来避免多线程并发的资源冲突问题,然而添加synchronized的方式只在简单场合够用,在一些高级场合就暴露出它的局限性,包括但不限于下列几点:1.synchronized必 ...

  8. Wide & Deep Learning Model

    Generalized linear models with nonlinear feature transformations (特征工程 + 线性模型) are widely used for l ...

  9. three.js 源代码凝视(十五)Math/Plane.js

    商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发 ...

  10. sphinx的配置和管理

    网上配置文档众多,但是对着他们的文档来做老是出问题,于是花了点时间研究了一下,写成总结,方便以后查阅.也希望学习sphinx的朋友能少走弯路.Coreseek的安装请参考:http://blog.ch ...