Есть ли какой-нибудь API, позволяющий мне управлять диалоговым окном загрузки файла в Firefox? (Я хочу получить доступ к тому, который появляется, когда пользователь что-то делает, а не инициировать его сам).
Я хочу получить доступ к этому диалогу из Selenium (и я не уверен, достаточно ли «привилегированного режима» Selenium для доступа к интерфейсу Chrome).
Ответы:
Не то, что я знаю о. Но вы можете настроить Firefox на автоматический запуск загрузки и сохранение файла в определенном месте. Затем ваш тест может проверить, действительно ли файл прибыл.
источник
У меня есть решение этой проблемы, проверьте код:
источник
Content-Disposition: attachment
. В этом случае Firefox всегда открывает диалоговое окно!setPreference("browser.helperApps.neverAsk.saveToDisk", "application/xls");
У меня была та же проблема, но я нашел решение. Я сделал это так же, как и в этом блоге .
Конечно, это была Java, я перевел ее на Python:
В моем примере это был файл CSV. Но когда вам нужно больше, они хранятся в
~/.mozilla/$USER_PROFILE/mimeTypes.rdf
источник
Веб-приложения создают 3 различных типа всплывающих окон; а именно,
Как правило, всплывающие окна JavaScript создаются кодом веб-приложения. Selenium предоставляет API для обработки таких всплывающих окон JavaScript, например
Alert
.В конце концов, самый простой способ игнорировать всплывающие окна браузера и загружать файлы - это использовать профили браузера; Есть несколько способов сделать это:
Метод1
Прежде чем приступить к работе со всплывающими окнами в профилях браузера, убедитесь, что для параметров загрузки по умолчанию установлено значение «Сохранить файл».
(Откройте Firefox) Инструменты> Параметры> Приложения
Метод 2
Используйте приведенный ниже фрагмент и при необходимости вносите правки.
источник
Большинство браузеров (в моем случае Firefox) по умолчанию выбирают кнопку ОК. Итак, мне удалось решить эту проблему с помощью следующего кода. Он в основном нажимает ввод для вас, и файл загружается.
источник
Я столкнулся с той же проблемой. В нашем приложении экземпляр FireFox был создан путем передачи DesiredCapabilities следующим образом
Основываясь на предложениях других, я внес свои изменения как
Это послужило цели, но, к сожалению, другие мои тесты автоматизации начали давать сбой. Причина в том, что я удалил те способности, которые передавались ранее.
Еще несколько просмотров в сети и нашли альтернативный способ. Мы можем установить сам профиль в желаемых Возможностях.
Итак, новый рабочий код выглядит так:
источник
Не знаю, но вы могли бы проверить источник одного из дополнений для загрузки Firefox.
Вот источник того, что я использую в строке состояния загрузки .
источник
У меня была такая же проблема, я не хотел доступа к диалогу сохранения.
Код ниже может помочь:
В зависимости от типа загружаемого файла вам необходимо указать типы содержимого.
Вы можете указать несколько типов содержимого, разделенных символом ' ;'
например:
источник
Вместо того, чтобы запускать собственный диалог загрузки файла, например:
Я обычно делаю это вместо этого, чтобы обойти собственный диалог загрузки файла. Таким образом, это работает во ВСЕХ браузерах:
Для этого просто необходимо реализовать метод,
getFileFromURL
который использует Apache HttpClient для загрузки файла и возврата вам ссылки на файл.Точно так же, если вы используете Selenide , он работает таким же образом, используя встроенную
download()
функцию для обработки загрузки файлов.источник
Я не понял вашу цель. Вы хотите, чтобы ваш тест автоматически загружал файл при выполнении теста? Если да, то вам необходимо использовать собственный профиль Firefox при выполнении теста.
В настраиваемом профиле в первый раз выполните тест вручную, и если появится диалоговое окно загрузки, установите его «Сохранить на диск», а также установите флажок «Всегда выполнять это действие», который обеспечит автоматическую загрузку файла при следующем запуске теста.
источник
Кроме того, вы можете добавить
Чтобы удалить список загруженных файлов, который отображается по умолчанию и закрывает часть веб-страницы.
Мои общие настройки:
источник