Как закрыть диалог загрузки Chrome с Selenium (нажав кнопку «Отмена») - PullRequest
0 голосов
/ 02 мая 2018

Я могу автоматизировать действие «Загрузить» в Chrome с помощью WebDriver. Ниже приведен мой код для установки Chrome Driver:

ChromeOptions options = new ChromeOptions();
HashMap<String, Object> chromePrefs = new HashMap<>();
chromePrefs.put("download.default_directory", "/pathToDownloadFolder");
chromePrefs.put("download.prompt_for_download", false);
chromePrefs.put("download.directory_upgrade", true);
chromePrefs.put("safebrowsing.enabled", true);
options.setExperimentalOption("prefs", chromePrefs);
// create chrome driver
webDriver = new ChromeDriver(options);

Файл будет сохранен в pathToDownloadFolder.

Но я не хочу на самом деле сохранять файл. Мое намерение состоит в том, чтобы автоматизировать действия пользователя: нажмите для загрузки -> появится диалоговое окно загрузки -> пользователь нажимает кнопку отмены.

Какая опция может отображать кнопку «Отмена» в диалоге загрузки?

EDIT

Я хочу скачать, но не сохранять, потому что мне нужно нажать кнопку загрузки, чтобы активировать другую кнопку для нажатия, поэтому сохранение файла не требуется, поэтому я хочу закрыть (или автоматизировать действие, когда пользователь нажимает кнопку Отмена, когда Диалоговое окно загрузки)

Я рассмотрел Параметры Chrome , но, похоже, в текущей реализации это невозможно. Есть ли обходной путь?

1 Ответ

0 голосов
/ 08 мая 2018

Чтобы включить или запросить у браузера запрос разрешения, используйте следующий код:

chromePrefs.put("download.prompt_for_download", false);

Я вижу, что вы использовали это. Сделать это до true.

chromePrefs.put("download.prompt_for_download", true);

Это попросит вас выбрать место для загрузки. Так как после нажатия на загрузку, в большинстве случаев открывается системное окно, и это не может быть обработано с помощью веб-драйвера. Для этого вы должны использовать сторонние инструменты, такие как Sikuli .

Более подробную информацию о Sikuli можно найти здесь .

Я не использовал Sikuli , но когда я упоминал о вашем вопросе. Я видел пример, приведенный в ссылке выше. Может быть, это поможет вам.

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