Скачать всплывающее окно все еще появляется в Selenium - PullRequest
1 голос
/ 27 апреля 2020

Моя проблема в том, что отображается всплывающее окно загрузки, а я хочу скачать файл по chrome, используя селен и java. НО. На других P C эта проблема не возникает - файлы загружаются по пути, который я получаю в коде.

Мой вопрос: в чем может быть проблема с одним P C. Версия chrome и chromedriver одинаковы для обоих P C.

HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
    chromePrefs.put("profile.default_content_settings.popups", 0);
    chromePrefs.put("download.default_directory", downloadFilepath);
    chromePrefs.put("safebrowsing.enabled", "false");
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("useAutomationExtension", false);
    options.setExperimentalOption("prefs", chromePrefs);
    options.addArguments("--disable-extensions");
    DesiredCapabilities cap = DesiredCapabilities.chrome();
    cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
    cap.setCapability(ChromeOptions.CAPABILITY, options);
    driver = new ChromeDriver(cap);

Ответы [ 3 ]

2 голосов
/ 27 апреля 2020

Добавить это предпочтение

chromePrefs.put("download.prompt_for_download", false);
chromePrefs.put("directory_upgrade", true);
0 голосов
/ 29 апреля 2020

Я решил проблему. Было два сценария ios, для двух разных страниц:

  1. 1-го я просто нажимаю на кнопку, чтобы загрузить, этот код работает довольно хорошо:

    HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
    chromePrefs.put("profile.default_content_settings.popups", 0);
    chromePrefs.put("download.default_directory", downloadFilepath);
    chromePrefs.put("download.prompt_for_download", false);
    chromePrefs.put("safebrowsing.enabled", "false"); // to disable security check eg. Keep or cancel button
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("useAutomationExtension", false);
    options.setExperimentalOption("prefs", chromePrefs);
    options.addArguments("test-type");
    options.addArguments("disable-popup-blocking");
    DesiredCapabilities cap = DesiredCapabilities.chrome();
    cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
    cap.setCapability(ChromeOptions.CAPABILITY, options);
    driver = new ChromeDriver(cap);
    
  2. Во-вторых, я запускаю функции JS, которые отвечали за запуск файла загрузки:

        HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
    chromePrefs.put("profile.default_content_settings.popups", 0);
    chromePrefs.put("download.default_directory", downloadFilepath);
    chromePrefs.put("download.prompt_for_download", false);
    chromePrefs.put("directory_upgrade", true);
    chromePrefs.put("safebrowsing.enabled", "false"); // to disable security check eg. Keep or cancel button
    chromePrefs.put("profile.content_settings.exceptions.automatic_downloads.*.setting", 1);
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("useAutomationExtension", false);
    options.setExperimentalOption("prefs", chromePrefs);
    options.addArguments("test-type");
    options.addArguments("disable-popup-blocking");
    options.addArguments("--disable-extensions");
    DesiredCapabilities cap = DesiredCapabilities.chrome();
    cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
    cap.setCapability(ChromeOptions.CAPABILITY, options);
    driver = new ChromeDriver(cap);
    
0 голосов
/ 27 апреля 2020

Добавьте это предпочтение, чтобы увидеть, работает ли оно.

chromePrefs.put("plugins.always_open_pdf_externally", true);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...