我正在创建一个自动化工具,它将有助于拍摄网页的屏幕截图,我使用Selenium Web驱动程序(Java),目前我能够使用以下代码拍摄整个网页的屏幕截图< / p>
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("full.jpeg"));
但是我想单独使用当前窗口的屏幕截图(我想模拟打印屏幕功能的动作)使用硒,请指导我如何单独拍摄当前网页的屏幕截图。谢谢预先
此致 维涅什
答案 0 :(得分:1)
查看我的实用程序代码
public static String captureScreen() {
//get your driver instance
try {
File source = ((TakesScreenshot)
driver).getScreenshotAs(OutputType.FILE);
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat(
"yyyy/MMM/dd HH:mm:ss");
String dateN = formatter.format(currentDate.getTime()).replace("/","_");
String dateNow = dateN.replace(":","_");
String snapShotDirectory = /*your snapshot folder path*/+ dateNow;
File f = new File(snapShotDirectory);
if(f.mkdir()){
path = f.getAbsolutePath() + "/" + source.getName();
FileUtils.copyFile(source, new File(path));
}
}
catch(IOException e) {
path = "Failed to capture screenshot: " + e.getMessage();
}
return path;
}
只需在想要拍摄快照的地方调用此方法。
答案 1 :(得分:0)
WebDriver中没有任何内容支持此功能,但您可以使用Java Robots截取屏幕截图: http://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html#createScreenCapture%28java.awt.Rectangle%29