code: @Conditioned
      @Lorsque("Je patiente que le fichier nommé '(.*)' soit téléchargé avec un timeout de '(.*)' secondes[\\.|\\?]")
      @Then("I wait file named '(.*)' to be downloaded with timeout of '(.*)' seconds[\\.|\\?]")
      public void waitDownloadFile(String file, int timeout, List<GherkinStepCondition> conditions) throws InterruptedException, FailureException, TechnicalException {
          File f;
          int nbTry = 0;
          do {
              if (nbTry >= timeout) {
                  new Result.Failure<>(file, Messages.format(Messages.getMessage(Messages.FAIL_MESSAGE_DOWNLOADED_FILE_NOT_FOUND), file), false, Context.getCallBack(Callbacks.RESTART_WEB_DRIVER));
              }
              Thread.sleep(1000);
              f = new File(System.getProperty(USER_DIR) + File.separator + DOWNLOADED_FILES_FOLDER + File.separator + file);
              nbTry++;
          } while (!(f.exists() && !f.isDirectory()));
          logger.debug("File downloaded in {} seconds.", nbTry);
      }
docs: Waits the full download of a file with a maximum timeout in seconds.
  
  @param file
  The name of the file to download
  @param timeout
  The maximum timeout
  @param conditions
  List of 'expected' values condition and 'actual' values ({@link com.github.noraui.gherkin.GherkinStepCondition}).
  @throws InterruptedException
  Exception for the sleep
  @throws TechnicalException
  @throws FailureException