Как получить имя файла из модального окна?

@ArtOfLife, да, обратил внимание, что разные, и куки различаются. Не понимаю, почему так происходит. Все делается в одной сессии.

@Override
  public void downloadAgreements() {
    pages.downloadPage
        .downloadAgreement("01.12.2014"); //тут происходит клик по ссылке, автоматом скачивается файл
    Set<Cookie> cookies = getCookies();
    for (Cookie cookie : cookies) {
      System.out.println("Name: " + cookie.getName() + " " + "Value: " + cookie.getValue());
      getHeaders();
    }
  }

private Set<Cookie> getCookies() {
    return driver.manage().getCookies();
  }

private void getHeaders() {
    HttpClient client = HttpClientBuilder.create().build();
    HttpGet reguest = new HttpGet("http://localhost:9000/reportscheduler/download?id=13799");// единственная ссылка с таким id-шником
    try {
      HttpResponse response = client.execute(reguest);
      Header[] headers = response.getAllHeaders();
      for (Header header : headers) {
        System.out.println("Key : " + header.getName()
            + " ,Value : " + header.getValue()); //тут значения cookieValue отличается.
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

А вы респонс читали то? Может там прилетает 401я от сервера? Вряд ли у вас сайт настолько уязвим, что файлы можно стягивать без авторизации. Лично у нас, чтобы стянуть файл, надо вначале получить auth token, а потом отправлять его вместе со всеми реквестами в хэдере.

Респонс возвращает 200 OK
При переходе по ссылке которая используется в тесте, не авторизованный пользователь получает список заголовков, среди которого отсутствует Content-Disposition. Т.е такое ощущение, что в тесте происходит выход из сессии, а затем попытка получить имя файла, но этого просто не может быть.

Вы действительно думаете, что браузер под вебдрайвером и ваш самостоятельно выпуленный гет-реквест “живут” в одной сессии?

Ну так все очевидно. Вы не можете вытянуть файл, потому что не авторизованы. И как уже сказали выше, тут нет никакой связи между тем, что происходит в браузере и “ручным” обращением к сервису. Спросите у девелоперов, как получить auth token, и с каким ключом надо передать его в качестве хэдера запросу о получении файла.

Был уже такой кейс.

  1. Авторизуйтесь вручную
  2. Через EditThisCookie екстеншен в Хроме, выпелите куки, убедитесь, что он валидны на какое-то время
  3. Шлите выпеленные куки через параметр запроса использую ваш клиент и все дела.

Это будет работать далеко не для всех систем. У нас, к примеру, стоит CSRF протекшен. Вначале отсылается хэндшейк запрос для генерации уникального id и куки. Все это дело отправляется auth сервису, который отдает токен. И только после этого можно обращаться к другим сервисам, отсылая csrf и auth хэдеры + куки.

Это да.
А вообще, любая система которая не юзает актив директори(ну или просто доменную) авторизацию - уже по дефолту не сложная для работы.