t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

Теги: #<Tag:0x00007f9afffb93d8> #<Tag:0x00007f9afffb9310> #<Tag:0x00007f9afffb9248> #<Tag:0x00007f9afffb9180>

Подскажите, пожалуйста, как можно обойти 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);

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

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

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

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

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

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

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

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

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

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

profile.setPreference("browser.helperApps.neverAsk.openFile", "application/octet-stream;application/x-msdownload");
profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/octet-stream;application/x-msdownload");

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

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

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

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

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