0

我正在创建一个自动化工具,这将有助于截取网页的屏幕截图,我正在使用 Selenium Web 驱动程序(Java),目前我可以使用以下代码截取整个网页的屏幕截图

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);

FileUtils.copyFile(scrFile, new File("full.jpeg"));

但我想使用 selenium 单独截取当前窗口的屏幕截图(我想模拟打印屏幕功能的动作),请指导我如何单独截取当前网页的屏幕截图。提前致谢

问候,维涅什

4

2 回答 2

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; 
}

只需在要拍摄快照的任何地方调用此方法即可。

于 2013-09-27T13:08:25.770 回答
0

WebDriver 中没有任何内容支持这一点,但您可以使用 Java 机器人截屏:http: //docs.oracle.com/javase/7/docs/api/java/awt/Robot.html#createScreenCapture%28java.awt .矩形%29

于 2013-09-27T12:40:53.577 回答