Имя файла со скриншотом [SomeRandomnumber.png] создается внутри var/tmp при использовании селена — java

Я делаю снимок экрана в своем проекте селена, используя метод ниже

public String getScreenShotUrl(String fileName, Information information) {
    final String screenShotS3FolderName = "/test/s3"
    final String apiHistoryScreenshotUrl = "/test/history"
    new Thread(() -> {
        File screenshot = ((TakesScreenshot) information.getDriver()).getScreenshotAs(OutputType.FILE);
        contentHandler.moveScreenshotImageFileToS3(fileName, screenShotS3FolderName, screenshot);
    }).start();
    String crawlScreenshotUrl = apiHistoryScreenshotUrl + fileName + DOT_JPEG_FILE_EXTENSION;
    information.getAllScreenShotUrls().add(screenshotUrl);
    return crawlScreenshotUrl;
}

Я не храню файл где-либо внутри папки var/tmp

Я использую фаерфокс 83

водитель geco : 28

ОС: линукс

Проблема :

Я вижу много файлов png внутри

/var/tmp

screenshot18218906458183251330.png 

Теперь уверен, что вызывает этот снимок экрана в моем firefox/selenium.

Это заполняет мой жесткий диск. Как мне запретить Firefox делать этот скриншот.

Не уверен, какая команда вызывает это . Я недавно обновился до firefox-83, но не уверен, что 83 является причиной этой проблемы.

Поскольку вы используете OutputType.FILE . Он создает файл во временной папке. В соответствии с комментарием в коде «Получите снимок экрана во временный файл, который будет удален после выхода из JVM. Пользователи должны сделать копию этого файла». вам может понадобиться что-то написать для очистки папки tmp. stackoverflow.com/a/16691560/5324105

Rahul L 10.12.2020 06:20

Имеет смысл, что я запускаю сервер, поэтому jvm не может быть отключен

Jeya Kumar 10.12.2020 07:38
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
77
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В соответствии с командой Rahul я явно добавил команду удаления. это решило проблему Добавление screenshot.delete() // Это удаляет файл явно, не дожидаясь выхода jvm

public String getScreenShotUrl(String fileName, Information information) {
    final String screenShotS3FolderName = "/test/s3"
    final String apiHistoryScreenshotUrl = "/test/history"
    new Thread(() -> {
        File screenshot = ((TakesScreenshot) information.getDriver()).getScreenshotAs(OutputType.FILE);
        contentHandler.moveScreenshotImageFileToS3(fileName, screenShotS3FolderName, screenshot);
        screenshot.delete() // This delete the file once it is moved to s3
    }).start();
    String crawlScreenshotUrl = apiHistoryScreenshotUrl + fileName + DOT_JPEG_FILE_EXTENSION;
    information.getAllScreenShotUrls().add(screenshotUrl);
    return crawlScreenshotUrl;
}

Другие вопросы по теме