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. 【Android】状态栏通知Notification、NotificationManager详解(转)

    在Android系统中,发一个状态栏通知还是很方便的.下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置? 首先,发送一个状态栏通知必须用到两个类:  NotificationMa ...

  2. mysql中进行删除操作时用到not in 导致删除不成功

    delete from tb_news where id not in ( select max(id) From tb_news Group By title ) 刚开始用这条语句删除一直不成功 然 ...

  3. php 处理大文件方法 SplFileObject

    $csv_file = 'tmp.csv'; $start = isset($_GET['start']) ?intval($_GET['start']) : 1; // 从第几行开始读取 $num ...

  4. 全能无线渗透测试工具,一个LAZY就搞定了

    近来一直在研究无线安全方面的东西,特别是在无线渗透测试这块,每次渗透测试时总要来回不停的切换操作和挑选利器,很是麻烦.就想看看是否可以有一款功能全面的集合型工具. 正所谓功夫不负有心人,还真有这么一个 ...

  5. ARM汇编指令MCR/MRC学习

    MCR指令将ARM处理器的寄存器中的数据传送到协处理器的寄存器中.假设协处理器不能成功地运行该操作.将产生没有定义的指令异常中断. 指令的语法格式: MCR{<cond>} p15, 0, ...

  6. Java线程池 ExecutorService

    一.ExecutorService介绍 ExecutorService是Java中对线程池定义的一个接口,它java.util.concurrent包中,在这个接口中定义了和后台任务执行相关的方法:  ...

  7. Android使用procrank和dumpsys meminfo 、top分析内存占用情况

    如果你想查看所有进程的内存使用情况,可以使用命令procrank.dumpsys meminfo查看,当然也只可以过滤出某个进程如:dumpsys meminfo | grep -i phone 先来 ...

  8. saltstack安装配置(syndic)

    syndic是saltstack用来做集群部署的,一般结构如图: syndic是一个特殊的minion,syndic类继承于minion类,syndic可以看作一个代理,只做数据传递. CentOS上 ...

  9. error at ::0 can&#39;t find referenced pointcut pointCutName 错误解决方法

    Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire method: publi ...

  10. openwrt gstreamer实例学习笔记(一.初始化gstreamer)

    GStreamer 是一个非常强大而且通用的流媒体应用程序框架. GStreamer所具备的很多优点来源于其框架的模块化: GStreamer能够无缝的合并新的插件. 但是, 由于追求模块化和高效率, ...