Java/Selenium-文件名、目录名或卷标语法不正确(Java.io.IOException)

Java/Selenium-文件名、目录名或卷标语法不正确(Java.io.IOException),java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我编写了一个简单的selenium脚本来捕获屏幕截图,出于某种原因,该脚本引发了异常: java.io.IOException:文件名、目录名或卷标语法不正确 在Windows上使用Unix样式的路径 将当前路径分隔符/更改为File.separator,以实现代码的跨平台执行 快速修复您的代码: String path=“.”+File.separator+“屏幕截图”+File.separator+fileName+““+date+”.png”; dformat.format(date)返回

我编写了一个简单的selenium脚本来捕获屏幕截图,出于某种原因,该脚本引发了异常:

java.io.IOException:文件名、目录名或卷标语法不正确


在Windows上使用Unix样式的路径

将当前路径分隔符
/
更改为
File.separator
,以实现代码的跨平台执行

快速修复您的代码:

String path=“.”+File.separator+“屏幕截图”+File.separator+fileName+““+date+”.png”;

dformat.format(date)
返回一个
字符串
(即
“12-10-2020 22-04-04”
),您的
路径
字符串的
日期.toString()
(即
“Mon Oct 12 22:04:04 GMT 2020”
)附加在
“.png”
)之前。如何解决此问题?有什么建议吗?
String path=“./Screenshots/”+fileName+““+dformat.format(date)+.png”。您的问题可能是由最终路径中的空格引起的,从日期格式字符串(
“dd-MM-yyy-HH-MM-ss”
),或者尝试用uderscore或连字符替换空格(即
“dd-MM-yy\u HH-MM-ss”
)。太好了!成功了-谢谢!我实现了您的修复,但仍然不走运…仍然看到相同的异常java.io.IOException:文件名、目录名或卷标语法不正确
public class ScreenshotUtil {

    WebDriver driver;

    public ScreenshotUtil(WebDriver driver) {
        this.driver = driver;
    }

    public String getScreenShot(String fileName) {
        SimpleDateFormat dFormat = new SimpleDateFormat("dd-MM-yyy HH-mm-ss");
        Date date = new Date();
        dFormat.format(date);
        TakesScreenshot ts = (TakesScreenshot) driver;
        File source = ts.getScreenshotAs(OutputType.FILE);
        String path = "./Screenshots/" + fileName + "_" + date + ".png";
        File destination = new File(path);
        try {
            FileUtils.copyFile(source, destination);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return path;
    }
}