Почему firefox загружает файл PDF с именем «Документ» вместо действительного имени из URL после настройки Firefox для загрузки файла без сохранения в диалоговом окне? - PullRequest
0 голосов
/ 01 апреля 2020
        FirefoxOptions options = new FirefoxOptions();
        FirefoxProfile profile = new FirefoxProfile();

        // Accept Untrusted Certificates
        profile.setAcceptUntrustedCertificates(true);
        profile.setAssumeUntrustedCertificateIssuer(false);

        //Directly download PDF


        profile.setPreference("browser.helperApps.neverAsk.openFile", "application/pdf");
        profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
        profile.setPreference("pdfjs.disabled", true); // disable the built-in PDF viewer

        // Set Firefox profile to capabilities
        options.setCapability(FirefoxDriver.PROFILE, profile);

Я использовал приведенный выше код для настройки firefox, чтобы он непосредственно загружал PDF при нажатии на ссылку PDF с помощью веб-драйвера selenium. Когда сценарий автоматизации нажимает на ссылку, которая загружает PDF, сценарий загружает файл напрямую , но он теряет исходное имя, но загружается как «Документ» см. Вложение для скриншота загруженных файлов. enter image description here

1 Ответ

0 голосов
/ 01 апреля 2020

Решением этой проблемы является http имя загружаемого файла - веб-серверу необходимо отправить определенные заголовки HTTP клиенту для установки имени файла. Вы не исправите это с настройкой браузера или чем-то, что связано с Selenium.

Чтобы исправить это, необходимо установить HTTP-заголовок content-disposition в ответе от сервера. Как то так:

content-disposition: attachment; filename=TheFileNameYouWant.pdf
...