Java/Selenium-文件名、目录名或卷标语法不正确(Java.io.IOException)
我编写了一个简单的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)返回
在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;
}
}