Как обойти "Would you like to save this file" окно на ФаерФоксе?

java
firefox
selenide
webdriver
Теги: #<Tag:0x00007fedb9b62818> #<Tag:0x00007fedb9b626d8> #<Tag:0x00007fedb9b62520> #<Tag:0x00007fedb9b623e0>

(Natalie Linda) #1

Подскажите, пожалуйста, как можно обойти Whould you like to save this file окно на ФаерФоксе?
А конкретно мне нужно проверить что прошла закачка файла, после оплаты. Проверить и потом удалить файл.

Я попытался сделать …
На хроме реализовала так

HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
        chromePrefs.put("download.default_directory", "C:\\Users\\nlinda\\Desktop");
        chromePrefs.put("profile.default_content_settings.popups", 0);
        chromePrefs.put("download.directory_upgrade", true);
        chromePrefs.put("safebrowsing.enabled", "true");
        ChromeOptions options = new ChromeOptions();
        options.setExperimentalOption("prefs", chromePrefs);
        ChromeDriverManager.getInstance().setup();
        browser = "chrome";
        WebDriverRunner.setWebDriver(new ChromeDriver(options));

File dir = new File(“C:\Users\nlinda\Desktop”);
File[] dirContents = dir.listFiles();

    for (int i = 0; i < dirContents.length; i++) {
        if (dirContents[i].getName().equals("downloadedFileName")) {
                // File has been found, it can now be deleted:
                //dirContents[i].delete();
            }
        else {System.out.println("njn");
            }                 Thread.sleep(5000);

        }}


У меня получилось вроде, но только с хромом, на ФФ пробовала так

`FirefoxProfile profile = new FirefoxProfile();`

        profile.setPreference("safebrowsing.enabled", "true");

        profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
        profile.setPreference("browser.download.manager.closeWhenDone", true);
        profile.setPreference("browser.download.manager.focusWhenStarting", false);
        profile.setPreference("browser.download.manager.showWhenStarting",false);

Но всеравно выскакивает это окно

Так же пробовала в самих настройках ФФ изменить, но тоже не получилось

(Yaroslav Pernerovskyy) #2

А так пробовали? (с 27:34)


(Сергей Кобзарь) #3

Попробуйте добавить:
profile.setPreference("browser.helperApps.neverAsk.saveToDisk","mime type");
список mime types


(Natalie Linda) #4
    profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream");

добавила, не работает


(Natalie Linda) #5

у меня еще на самом начале проблема с, нет такого метода тут addContentType и пока не нашла как испраить

  HttpResponseInterceptor downloader = new FileDownloader()
                .addContentType ("application/pdf");

(Сергей Кобзарь) #6

какое расширение вы скачиваете?


(Natalie Linda) #7

это бинарник exe-шник
в коде делала и application/x-msdownload, и application/octet-stream


(Сергей Кобзарь) #8
profile.setPreference("browser.helperApps.neverAsk.openFile", "application/octet-stream;application/x-msdownload");
profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/octet-stream;application/x-msdownload");

Попробуйте так. Я так понимаю, он спрашивает про открытие файла сперва, а не простое сохранение на диск.


(Natalie Linda) #9

всеравно есть диалоговое окно


#10

Обошел так: создал отдельный профиль ФФ с кастомными настройками и ниже приведен код:

ProfilesIni firefoxProfile = new ProfilesIni();
FirefoxProfile profile = firefoxProfile.getProfile("profile");
Configuration.browserCapabilities.setCapability(FirefoxDriver.PROFILE, profile);

конечно не “па-нармальному”, но работает:slight_smile: