Apply the configuration before the first browser starts, including any implicit creation in shared test setup:

Configuration.proxyEnabled = true;
Configuration.fileDownload = FileDownloadMode.PROXY;
Configuration.downloadsFolder = "build/downloads";

open(applicationUrl);
File report = $("#download-report").download();

proxyEnabled enables Selenide's embedded listener for that browser session. Changing the static settings afterward cannot add that listener/download filter to the existing session. downloadsFolder only selects file storage.

Configuration.proxyHost/proxyPort identify that embedded endpoint, not an arbitrary corporate upstream. Port zero lets Selenide pick a free port.

On Grid, the remote browser must reach the test machine's listener. Its own localhost points elsewhere; use a browser-reachable advertised host when detection is unsuitable.

For a normal href link, default HTTPGET uses a different download path. PROXY is useful for action-triggered downloads, such as a form submission without a direct link.

Erthyglow kevrennek