Не скачивается файл с пробелами selenide selenoid, файлы генерирует бэкенд

Проблема (Вопрос) заключается в скачивании файлов если в их названии есть пробелы (Release notes.zip). Это касается только тестового окружения (Lniux, Selenoid, Docker).
На локальной машине (Windows) файлы просто сохраняются в target/download и там потом мы их ищем.

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

Я попытался получить файлы при помощи запроса к селеноиду в формате http://12.12.12.12/download/sessionId/ но список файлов пуст, хотя файл скачан (видно по selenoid UI)

У меня получилось скачивать файлы, которые не содержат пробелы, при помощи запроса к селеноиду в формате http://12.12.12.12/download/sessionId/

У меня не получилось настроить прокси, пока не разобрался.
Как я понял метод download() в selenide работает только с аттрибутом href (без этого аттрибута ошибка). Этот способ наверное не очень подходит, кликать приходится на разные эелементы.

Конфиг

            Configuration.remote = "http://" + cf.getRemoteURL() + "/wd/hub";
            Map<String, Boolean> options = new HashMap<>();
            options.put("enableVNC", cf.getEnableVNC());
            options.put("enableVideo", cf.getEnableVideo());
            options.put("enableLog", cf.getEnableLog());
            Configuration.browserCapabilities.setCapability("selenoid:options", options);
            Configuration.browserCapabilities.setCapability("sessionTimeout", "30m");
            Configuration.fileDownload = FileDownloadMode.FOLDER;

Стек из POM:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.source>8</java.source>
        <java.target>8</java.target>
        <owner.version>1.0.12</owner.version>
        <cucumber.version>7.2.3</cucumber.version>
        <aspectj.version>1.9.6</aspectj.version>
        <aspectj-maven-plugin.version>1.14.0</aspectj-maven-plugin.version>
        <surefire.version>2.22.2</surefire.version>
        <selenide.version>6.2.0</selenide.version>
        <log4j.version>2.15.0</log4j.version>
        <slf4j.version>1.7.30</slf4j.version>
        <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
        <allure.version>2.17.2</allure.version>
        <allure.maven.version>2.10.0</allure.maven.version>
        <common-lang3.version>3.12.0</common-lang3.version>
        <restassured.version>4.4.0</restassured.version>
        <jackson.version>2.12.3</jackson.version>
        <tags></tags>
    </properties>

Есть же плагин selenide-selenoid, он позволяет скачивать файлы из селеноида.

Вам не нужно всего это делать: искать файл в папке, выполнять GET запрос к селеноиду и т.д. Плагин это всё уже умеет делать.

Добрый день!
Спасибо за помощь. Но при подключении плагина, а так же при вызове метода Download появляется исключение, ругается что нет аттрибута href. Это нормальное поведение?

Step failed
java.lang.IllegalArgumentException: The element does not have href attribute: <div autotest-id="..." id="menuitem-2074"

То есть иногда необходимо кликать даже не по тегу<a>..</a>. Как можно решить проблему в данном случае?
В методе Download() есть задержка, правильно я понимаю что она в милисек? Не нашел эту информацию

Описание плагина читали?

Configuration.fileDownload=FOLDER

Спасибо большое, кажется сработало! :innocent:

1 лайк