Как загрузить изображение с угловыми компонентами, используя python selenium - PullRequest
0 голосов
/ 16 мая 2019

Мой скрипт автоматизации должен загрузить изображение на веб-страницу, но я не могу загрузить изображение, используя обычный метод send_keys. Я подозреваю, что это как-то связано с компонентами Angular, но я не уверен, как получить к ним доступ с помощью веб-драйвера Selenium.

Я пробовал следующее: Автоматическая загрузка файлов с использованием Selenium и ng-file-upload и Как загрузить файл, используя python + selenium?

Кажется, у них нет решения, которое я ищу.

<button class="md-raised choose-file md-button md-ink-ripple ng-empty ng-valid" type="button" ng-transclude="" ngf-select="" accept="image/*" ng-model="vm.uploader.original" aria-invalid="false">Choose file</button>

У меня нет ошибок, потому что я могу успешно найти элемент, но изображение не загружено / отправлено.

file_input.send_keys("/location/of/image/profile_student.jpg")

1 Ответ

2 голосов
/ 16 мая 2019

Для обработки объекта Windows вы можете использовать autoit Однако есть привязка Python для AutoItX3.dll

Вам необходимо установить PyAutoIt используя pip.

pip install -U pyautoit

Вам необходимо импортировать autoit в скрипты Python.

autoit импорта

Сначала нажмите кнопку chose file.

driver.find_element_by_xpath("//button[@type='button'][contains(.,'Choose file')]").click()

Затем добавьте следующий код с relevant file path

filepath="C:\\filelocation\\filename.jpg"
autoit.win_wait_active("File Upload",5)
if autoit.win_exists("File Upload"):
   autoit.control_send("File Upload","Edit1",filepath+"{ENTER}")

Дайте мне знать, если вам понадобится дополнительная помощь.

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