Автоматическая загрузка файла сценария привязки тега - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь автоматизировать поведение, которое имеет несколько сценариев, связанных с загрузкой файлов, с другой комбинацией утверждений. В пользовательском интерфейсе есть тег привязки вместо тега ввода, поэтому я не могу использовать ключи для отправки файла. Я не хочу использовать AutoIT, подобные инструментам Sikuli, поскольку они не совместимы с удаленным выполнением в облачной среде и добавляют дополнительные обязательства библиотеки.

Это угловое приложение js, код DOM

--- "a href =" javascript: void (0) "title =" Выбрать файл для загрузки "class =" btn btn-blue "ng-show =" fileUploadSubmitted "id =" file_input_btn "ng-click = "uploadFileAttachment ()"

Я пытаюсь найти: - 1: Любая встроенная функция загрузки из угловой библиотеки js, чтобы я мог выполнить ее через исполнителя javascript. 2: Sikuli и AutoIt работает, но это будет последнее решение 3: Попытка отредактировать имя тега для ввода с типом файла в DOM, за которым следуют sendkeys, но это не будет работать

1 Ответ

0 голосов
/ 13 мая 2019

Можете ли вы попробовать этот подход ниже.

Tested locally not on the server.

# get the button element
ele = driver.find_element_by_id("file_input_btn")
# add a hidden file input ( might have to change the onchange event based on the events associated to the button in above line as you don't have a form)
driver.execute_script("var x=  document.createElement('INPUT');x.setAttribute('type', 'file'); x.setAttribute('onchange','this.form.submit()');x.setAttribute('hidden', 'true'); arguments[0].appendChild(x);",ele)
# send the file path here ( this should upload the file)
driver.find_element_by_xpath("//input[@type='file']").send_keys("file path should go here")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...