Java【selenium】实现截屏功能

import java.io.File;
import java.util.concurrent.TimeUnit;

import org.apache.commons.io.FileUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

/*
*selenium使用selenium截屏
*
*/
class SeleniumWebScreenshots {
//定义Webdriver
WebDriver driver;
//定义访问网址
String baseurl;

@BeforeEach
void setUp() throws Exception {
	//谷歌浏览器的本地驱动
	System.setProperty("webdriver.chrome.driver", "/Users/lisen/webselenium/selenium/chromedriver");
	//new一个谷歌浏览器对象
	driver =new ChromeDriver();
	//定义访问网址,访问的是去哪网
	baseurl="https://www.yahoo.com/";
	//打开网址过后,设置隐性等待,等待10秒
	driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
	//打开网址后,窗口最大化
	driver.manage().window().maximize();
	
	
}

@Test
void test() throws Exception {
	//打开网址,调用driver.get方法
	driver.get(baseurl);
	//打印log信息
	System.out.println("打开网址完成");
	//点击雅虎网站,用id查找登陆按钮
	driver.findElement(By.id("uh-signin")).click();
	//打印log信息
	System.out.println("点击网址完成");
	//输入内容
	driver.findElement(By.id("login-username")).sendKeys("test");
	//点击登陆按钮
	driver.findElement(By.id("login-signin")).click();
	Thread.sleep(3000);
}
//创建得到随机字符串方法,作为文件名称
public static String Randomstring(int length) {
	//新建StringBuilder对象是一个可变的字符序列
	StringBuilder sb= new StringBuilder();
	String TheFileNamestring="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
	for (int i = 0; i < length; i++) {
		//Math.random是返回0-1之间的随机数,随机数再乘以字符串的长度,得到的是62之间的一个随机数,强制转换为整数,作为字符串的索引
		int index=(int)(Math.random()*TheFileNamestring.length());
		//TheFileName.charAt得到的是索引上的字符,sb.append的功能是把所有字符都连接在一起
		sb.append(TheFileNamestring.charAt(index));
		
		
	}
	
	
	return sb.toString();
}

@AfterEach
//截图具体代码,存放具体目录
void tearDown() throws Exception {
	//设置等待时间,看清楚操作
	Thread.sleep(2000);
	//设置文件扩展名
	String filename=Randomstring(10)+".png";
	//定义文件存放目录
	String Directory="/Users/lisen/jietu";
	//以文件的方式输出
	File sourceFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
	//复制文件的功能
	FileUtils.copyFile(sourceFile,new File(Directory+filename));
	Thread.sleep(3000);
	//关闭浏览器
	driver.quit();
	
	
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值