//以下七种方法主要用于生成年、月、日、小时、分钟和秒的信息,用于生成保存截图的文件目录名和文件名
/*
* 格式化输出日期

* @return 返回字符型日期
*/
public static String format(java.util.Date date, String format) {
String result = "";
try {
if (date != null) {
java.text.DateFormat dateFormat = new java.text.SimpleDateFormat(format);
result = dateFormat.format(date);
}
} catch (Exception e) {
// TODO: handle exception
}
return result;
}

/*
* 返回年份
* @return返回年份
*/
public static int getYear(java.util.Date date) {
java.util.Calendar calendar = java.util.Calendar.getInstance();
calendar.setTime(date);
return calendar.get(java.util.Calendar.YEAR);
}

/*
* 返回月份
* @return返回月份
*/
public static int getMonth(java.util.Date date) {
java.util.Calendar calendar = java.util.Calendar.getInstance();
calendar.setTime(date);
return calendar.get(java.util.Calendar.MONTH) + 1;
}

/*
* 返回在月份中的第几天
* @return返回在月份中的第几天
*/
public static int getDay(java.util.Date date) {
java.util.Calendar calendar = java.util.Calendar.getInstance();
calendar.setTime(date);
return calendar.get(java.util.Calendar.DAY_OF_MONTH);
}

/*
* 返回小时
* @param date
* 日期
* @return返回小时
*/
public static int getHour(java.util.Date date) {
java.util.Calendar calendar = java.util.Calendar.getInstance();
calendar.setTime(date);
return calendar.get(java.util.Calendar.HOUR_OF_DAY);
}

/*
* 返回分钟
* @param date
* 日期
* @return返回分钟
*/
public static int getMinute(java.util.Date date) {
java.util.Calendar calendar = java.util.Calendar.getInstance();
calendar.setTime(date);
return calendar.get(java.util.Calendar.MINUTE);
}

/*
* 返回秒
* @param date
* 日期
* @return返回秒
*/
public static int getSecond(java.util.Date date) {
java.util.Calendar calendar = java.util.Calendar.getInstance();
calendar.setTime(date);
return calendar.get(java.util.Calendar.SECOND);
}

//以下两种方法用于创建目录和文件
public static boolean createFile(String deatFileName) {
File file = new File(deatFileName);
if (file.exists()) {
System.out.println("创建单个文件" + deatFileName +"失败, 目标文件已存在! ");
return false;
}
if (deatFileName.endsWith(File.separator)) {
System.out.println("创建单个文件" + deatFileName +"失败, 目标文件不能为目录! ");
return false;
}
//判断目标文件所在的目录是否存在
if (!file.getParentFile().exists()) {
System.out.println("目标文件所在目录不存在,准备创建它!");
if (!file.getParentFile().mkdirs()) {
System.out.println("创建目标文件所在目录失败!");
}
}
try {
if (file.createNewFile()) {
System.out.println("创建单个文件" + deatFileName +"成功!");
return true;
}else {
System.out.println("创建单个文件" + deatFileName +"失败!");
return false;
}
} catch (Exception e) {
// TODO: handle exception
System.out.println("创建单个文件" + deatFileName +"失败!" + e.getMessage());
return false;
}
}

public static boolean createDir(String destDirName) {
File dir = new File(destDirName);
if (dir.exists()) {
System.out.println("创建目录" + destDirName +"失败,目标目录已经存在!");
return false;
}
//创建目录
if (dir.mkdirs()) {
System.out.println("创建目录" + destDirName +"成功!");
return false;
} else {
System.out.println("创建目录" + destDirName +"失败!");
return false;
}
}

//以下方法用于截图
public void takeTakeScreenshot(WebDriver driver) {
try {
//生成日期对象
Date date = new Date();
//调用该类中的方法,生成截图所在的文件夹日期名称
String picDir = "d:\\" + String.valueOf(getYear(date)) + "-" + String.valueOf(getMonth(date)) + "-" + String.valueOf(getDay(date));
if (! new File(picDir).exists()) {
createDir(picDir);
}
//调用该类中的方法,生成截图文件的时间名称
String filePath = picDir + "\\" + String.valueOf(getHour(new Date())) + "-" + String.valueOf(getMinute(new Date())) + "-" + String.valueOf(getSecond(new Date())) + ".png";
//进行截图,并将文件内容保存在SrcFile对象中
File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
//将截图文件内容写入到磁盘中,生成截图文件
FileUtils.copyFile(srcFile, new File(filePath));
} catch (Exception e) {
// TODO: handle exception
}
}

Java的selenium代码随笔(5)的更多相关文章

  1. Java的selenium代码随笔(8)

    Selenium截图方法一: Selenium中截图类TakeScreenshout,这个类主要是获取浏览器窗体内的内容,不包括浏览器的菜单和桌面的任务栏区域,我们用百度首页来截图,看看截图效果. F ...

  2. Java的selenium代码随笔(2)

    import java.awt.AWTException;import java.awt.Robot;import java.awt.Toolkit;import java.awt.datatrans ...

  3. Java的selenium代码随笔(1)

    package ShareClass; import java.awt.AWTException;import java.awt.Robot;import java.awt.Toolkit;impor ...

  4. Java的selenium代码随笔(7)

    //判断元素是否存在public boolean IsElementPresent (WebElement webElement, By by) { boolean status = false; t ...

  5. Java的selenium代码随笔(6)

    //获取元素列表public List<WebElement> ListElements(WebElement webElement, By parentBy, By childrenBy ...

  6. Java的selenium代码随笔(4)

    //高亮操作元素public void highlight(WebElement webElement) {JavascriptExecutor javascriptExecutor = (Javas ...

  7. Java的selenium代码随笔(3)

    /** 以下方法主要用于切换页面*/public void SetPageSwitch(String pageTitle) {Set<String> allWindowsHandles = ...

  8. Java使用Selenium几个例子

    零.姿势 Selenium分为两个版本:Selenium RC和Selenium Webdriver.现在用Selenium Webdriver比较多. Selenium是一套工具,而不仅仅是一个操纵 ...

  9. 正则表达式学习笔记(附:Java版示例代码)

    具体学习推荐:正则表达式30分钟入门教程 .         除换行符以外的任意字符\w      word,正常字符,可以当做变量名的,字母.数字.下划线.汉字\s        space,空白符 ...

随机推荐

  1. (摘)老司机也必须掌握的MySQL优化指南

    当 MySQL 单表记录数过大时,增删改查性能都会急剧下降,本文会提供一些优化参考,大家可以参考以下步骤来优化. 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部 ...

  2. WebService简单介绍(一)

    分布式系统或软件如何通信?使用WebService服务.说它是服务可以,web通信中间件也ok,web通信组件....... 特点 自包含 自描述 跨平台.跨语言 基于开放和标准 (用了xml,嗯,开 ...

  3. [Linux] awk与posix字符集

    awk posix字符集[:alnum:] 文字数字字符[:alpha:] 文字字符[:digit:] 数字字符[:graph:] 非空字符(非空格.控制字符)[:lower:] 小写字符[:cntr ...

  4. 数据结构(java版)学习笔记(二)——线性表之顺序表

    顺序表的优点: 随机存取元素方便,根据定位公式容易确定表中每个元素的存储位置,所以要指定第i个结点很方便 简单,直观 顺序表的缺点: 插入和删除结点困难 扩展不灵活,难以确定分配的空间 容易造成浪费 ...

  5. jsp基础语言-jsp注释

    JSP注释可分为客户端注释和服务器端注释. 客户端注释:用户可通过浏览器中的源代码查看,且这种注释可以加入JSP表达式. 语法:<!-- 客户端注释[<%=表达式%>] --> ...

  6. 2018 AI产业界大盘点

    2018  AI产业界大盘点 大事件盘点 “ 1.24——Facebook人工智能部门负责人Yann LeCun宣布卸任 Facebook人工智能研究部门(FAIR)的负责人Yann LeCun宣布卸 ...

  7. Redis压缩列表

    此篇文章是主要介绍Redis在数据存储方面的其中一种方式,压缩列表.本文会介绍1. 压缩列表(ziplist)的使用场景 2.如何达到节约内存的效果?3.压缩列表的存储格式 4. 连锁更新的问题  5 ...

  8. 使用 Browser-solidity 在 Go-Ethereum1.7.2 上进行简单的智能合约部署

    目录 目录 1.基本概念 1.1.什么是智能合约? 1.2.什么是Solidity? 1.2.1.Solidity的语言特性 1.3.什么是 Browser-solidity? 2.Browser-s ...

  9. JavaScript(二)数据类型(一)

    计算机程序的运行需要对值进行操作,在编程语言中值的类型被称作数据类型,编程语言最基本的特性就是能够支持多种数据类型.当程序需要将值保存起来以备将来使用时,便将其赋值给一个变量.变量是一个值的符号名称, ...

  10. iOS开发之Swift 4 JSON 解析指南

    Apple 终于在 Swift 4 的 Foundation 的模块中添加了对 JSON 解析的原生支持. 虽然已经有很多第三方类库实现了 JSON 解析,但是能够看到这样一个功能强大.易于使用的官方 ...