Java - ждать загрузки файла с частичным именем файла - PullRequest
1 голос
/ 08 июля 2019

Я пытаюсь дождаться загрузки файла, используя свободное ожидание.Но так как файл загружается с другим форматом даты.Я хочу проверить "Частичное имя файла" файла с помощью fluentWait.Например, отменен_07092019, отменен_09_07_2019.Так что здесь имя файла «cancelled_» остается постоянным

Ниже код отлично работает для фактического имени файла.

Downloaded_report= new File("DownloadPath");
FluentWait<WebDriver> wait = new FluentWait<WebDriver>(driver);
        wait.pollingEvery(1, TimeUnit.SECONDS);
        wait.withTimeout(15, TimeUnit.SECONDS);
        wait.until(x -> downloaded_report.exists());

Здесь я хочу проверить начало имени файла.Как мне это сделать?Заранее спасибо

1 Ответ

1 голос
/ 09 июля 2019

Я не уверен, правильно ли я понял вопрос, но вы можете проверить, существует ли файл с частичным именем в указанном каталоге.

File dir = new File("DownloadPath");
String partialName = downloaded_report.split("_")[0].concat("_"); //get cancelled and add underscore
FluentWait<WebDriver> wait = new FluentWait<WebDriver>(driver);
        wait.pollingEvery(1, TimeUnit.SECONDS);
        wait.withTimeout(15, TimeUnit.SECONDS);
        wait.until(x -> {
            File[] filesInDir = dir.listFiles();
            for (File fileInDir : filesInDir) {
                if (fileInDir.getName().startsWith(partialName)) {
                    return true;
                }
            }
            return false;
        });

В приведенном выше коде мы перечисляем все файлы в каталоге пути загрузки. Затем выполните итерацию по каждому файлу, получите его имя и проверьте, содержит ли оно требуемое нам частичное имя.

Это может быть проблемой, если у вас есть несколько отчетов в каталоге. Тогда я бы посоветовал очистить DownloadPath от файлов, которые начинаются с cancelled_, в некотором виде @Before hook.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...