java.io.IOException: Неверный синтаксис имени файла, имени каталога или метки тома.

Не могу сделать скриншот. Я пытаюсь сохранить его в пути к проекту с именем папки. Скриншот

Я пытался изменить путь, но все равно получаю ту же ошибку

public void getScreenShot() throws Exception {
        System.setProperty("webdriver.chrome.driver","C:\\Users\\abidk\\Desktop\\chromedriver.exe");    
        WebDriver driver= new ChromeDriver();
        driver.manage().window().maximize();
        driver.get("https://www.google.com/");
        // store the webelement
        WebElement element_node = driver.findElement(By.xpath("//img[@id='hplogo']"));
        // pass the stored webelement to javascript executor
        JavascriptExecutor jse = (JavascriptExecutor) driver;
        jse.executeScript("arguments[0].style.border='2px solid red'", element_node);
        Thread.sleep(1000);
         SimpleDateFormat dateFormatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
            Date date = new Date();
            File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
            FileUtils.copyFile(scrFile, new File("./Screenshot/" + "Google" +  "-" +dateFormatter.format(date)+".png"));

    }

Я хочу сохранить файл в пути к проекту и назвать его ScreenShot.


person Johnny    schedule 03.06.2019    source источник
comment
Пожалуйста, включите трассировку стека соревнований   -  person Stephen C    schedule 03.06.2019
comment
может не нравиться двоеточие в имени файла.   -  person Jeremy Kahan    schedule 03.06.2019
comment
@JeremyKahan Правильно. Windows определенно не допускает использование двоеточий в именах файлов.   -  person VGR    schedule 03.06.2019


Ответы (1)


Проблема с двоеточием ":"

Windows не позволяет сохранять файлы с : в имени файла.

Используйте 1_

Пример:

TakesScreenshot screenShotObj = ((TakesScreenshot) driver);
File sourceFile = screenShotObj.getScreenshotAs(OutputType.FILE);
Instant instant = Instant.now();
String toSavein="D:\\Screenshots";
String fileName = "ScreenShot" + instant.toString().replace(":", "-") + ".png";
File destinationFile = new File(toSavein, fileName);
FileUtils.copyFile(sourceFile, destinationFile);

Результат: ScreenShot2020-01-18T11-20-58.238372400Z.png

Примечание. Instant instant = Instant.now(); разрешено только выше Java 8.

person Siva    schedule 18.01.2020