使用Selenium 3.6-Java-Webdriver拍摄屏幕截图

使用Selenium 3.6-Java-Webdriver拍摄屏幕截图,java,selenium,webdriver,Java,Selenium,Webdriver,我无法在我的项目中截图。我正在使用Selenium 3.6版本和Java。这是我的密码: File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png")); 不幸的是,“copyFile”给出了以下错误: The method copyFile(File, File) is unde

我无法在我的项目中截图。我正在使用Selenium 3.6版本和Java。这是我的密码:

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));
不幸的是,“copyFile”给出了以下错误:

The method copyFile(File, File) is undefined for the type FileUtils
我还导入了所有必需的软件包


有人能帮我截图吗?

导入使用
导入org.apache.commons.io.FileUtils
。这将导入所需的
FileUtils

我猜你导入了错误的包

检查这些包裹是否应该在那里

import org.apache.commons.io.FileUtils;

import org.openqa.selenium.OutputType;

import org.openqa.selenium.TakesScreenshot;
示例代码:

public class Takenscreensshot {
    public static void main(String[] args) throws IOException {
        WebDriver driver=new FirefoxDriver();
        driver.get("https://www.google.co.in");
        File src=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(src, new File("d:/ss.png"));
        driver.close();
    }
}

错误表明“copyFile”给出了一个错误。它说的是“FileUtils类型的copyFile(File,File)方法未定义”。可能
FileUtils
在您的导入中有多个定义。因此,解决方案如下:

  • 仅限使用:

    import org.apache.commons.io.FileUtils;
    

  • 将代码更改为:

    File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); 
    org.apache.commons.io.FileUtils.copyFile(scrFile, new File("C:\\tmp\\screenshot.png"));
    
试试看

String capture = "window.png";

    try {

        Thread.sleep(3000);

        byte screenshot[] = (byte[])((TakesScreenshot)driver).getScreenshotAs(OutputType.BYTES);

    FileOutputStream fos = new FileOutputStream(capture);
                fos.write(screenshot);

        }catch (Exception){ }

这对我来说是正确的。

Selenium 3.6.0 FiltUtils中的快照不可用,因此需要使用FileHandler

以下是变化

  • 替换
    import org.apache.commons.io.FileUtils
    导入org.openqa.selenium.io.FileHandler
  • 替换
    FileUtils.copyFile(SrcFile,DestFile)
    to
    FileHandler.copy(SrcFile,DestFile)
  • 现在截图的代码如下所示

    TakesScreenshot scrShot =(TakesScreenshot)driver;
    File SrcFile= scrShot.getScreenshotAs(OutputType.FILE);
    File DestFile=new File(System.getProperty("user.dir")+"\\"+"screenshot.png");
    FileHandler.copy(SrcFile, DestFile);
    

    有关更多信息,请查看。

    谢谢您的回复。。导入org.apache.commons.io.FileUtils;导入com.sun.jna.platform.FileUtils后显示错误“导入org.apache.commons.io无法解决”;此错误出现在FileUtils中,但在copyFile中,错误显示为“类型FileUtils的方法copyFile(File,File)未定义”。我仍然无法拍摄屏幕截图,我已导入所有正确的包。但是错误仍然是一样的..import org.openqa.selenium.OutputType;导入org.openqa.selenium.TakesScreenshot;导入org.openqa.selenium.WebDriver;导入org.openqa.selenium.chrome.ChromeDriver;导入java.io.File;导入org.apache.commons.io.FileUtils;这些是您在traceback或Logimport org.openqa.selenium.OutputType上遇到的任何问题;导入org.openqa.selenium.TakesScreenshot;导入org.openqa.selenium.WebDriver;导入org.openqa.selenium.chrome.ChromeDriver;导入java.io.File;导入org.apache.commons.io.FileUtils;这些是导入文件scrFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.File);copyFile(scrFile,新文件(“E:\\Screenshot\\Screenshot.png”);这是代码。.在
    IDE
    中,只需使用
    org.apache.commons.io.FileUtils.copyFile(scrFile,新文件(“C:\\tmp\\screenshot.png”)import org.apache.commons.io.FileUtils未成功。从
    项目中删除相关的
    jar
    文件,从
    IDE
    中删除所有
    项目,关闭
    IDE
    ,重新启动
    系统,将相关的
    jar
    添加到
    项目中,然后运行
    测试