evgajukov
@evgajukov
Java разработчик

Как при помощи selenium сохранить pdf?

Пытаюсь сохранить через selenium в браузере firefox сгенерированный pdf файл, но вместо сохранения файла на диск, он просто отображается в браузере.
Настройки firefox:
private async getFirefoxClient() {
    let client = new wd.Builder()
      .usingServer(this.SELENIUM_HOST_DEFAULT)
      .withCapabilities({ browserName: this.BROWSER_FIREFOX })
      .withCapabilities(wd.Capabilities.firefox().set("acceptInsecureCerts", true));
    
    let options = new firefox.Options()
      .setPreference("pdfjs.disabled", true)
      .setPreference("plugin.scan.plid.all", false)
      .setPreference("plugin.scan.Acrobat", "99.0")
      .setPreference("browser.download.dir", this.downloadForlder)
      .setPreference("browser.download.manager.showWhenStarting", false)
      // 0 - desktop, 1 - file download folder, 2 - specified location
      .setPreference("browser.download.folderList", 2)
      .setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf", "application/x-pdf", "application/acrobat", "applications/vnd.pdf", "text/pdf", "text/x-pdf", "application/vnd.cups-pdf", "application/octet-stream");
    if (this.headless) {
      console.log(`!!!!! HEADLESS MODE !!!!!`);
      options = options.headless();
    }
    client = client.setFirefoxOptions(options);
    return client.build();
  }

к сгенерированному pdf обращаюсь следующим образом:
await this.client.get("https://server.ru/card/pdf?id=2729206&stamp=1");


Обычными способами (например, через curl) файл скачивать не получится, т.к. доступ к нему в закрытой области сайта и нужна предварительная авторизация.
  • Вопрос задан
  • 628 просмотров
Решения вопроса 1
evgajukov
@evgajukov Автор вопроса
Java разработчик
Так и не получилось обычным решением загружать pdf, но получилось с помощью другого решения, а именно: позволяю браузеру открыть pdf, а после при помощь selenium нажимаю на кнопку сохранить в самом pdf reader
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Попробуйте установить еще
options.setPreference("pdfjs.disabled", true);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы