#java #selenium #selenium-webdriver
#java #selenium #selenium-webdriver
Вопрос:
Я написал простой скрипт selenium для захвата скриншота, и по какой-то причине этот скрипт выдает исключение:
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;
}
}
Комментарии:
1.
dformat.format(date)
возвращаетString
(т.Е."12-10-2020 22-04-04"
), который вы не используете, Вашаpath
строка былаdate.toString()
(т.Е."Mon Oct 12 22:04:04 GMT 2020"
) Добавлена к ней ранее".png"
.2. Как мне это исправить? Есть предложения?
3.
String path = "./Screenshots/" fileName "_" dformat.format(date) ".png";
. Ваша проблема может быть вызвана пробелом в вашем конечном пути из вашей строки формата даты ("dd-MM-yyy HH-mm-ss"
), возможно, попробуйте заменить пробел на uderscore или дефис (т.Е."dd-MM-yyy_HH-mm-ss"
).4. Отлично! это сработало — спасибо!
Ответ №1:
Вы используете пути в стиле Unix в Windows.
Измените текущий разделитель пути /
File.separator
на, чтобы обеспечить кроссплатформенное выполнение вашего кода.
Быстрое исправление вашего кода:
String path = "." File.separator "Screenshots" File.separator fileName "_" date ".png";
Комментарии:
1. Я внедрил ваше исправление, но по-прежнему безуспешно … все еще вижу то же исключение java.io.IOException: синтаксис имени файла, имени каталога или метки тома неверен