Selenium для Python: как начать загрузку файла после Send_Keys () - PullRequest
0 голосов
/ 06 ноября 2018

Используя Selenium для Python с Firefox, я пытаюсь загрузить файл в поле ввода скрытого файла.

Кажется, я могу сделать поле ввода видимым через:

driver.execute_script("document.getElementsByClassName('btn btn-primary btn-lg pull-right fileInputWrapper ipadUploadButton')[0].style='display:True';")
driver.execute_script("document.getElementsByClassName('fileInput hiddenInput')[0].style='opacity:100';")

На веб-странице появляется строка с надписью Файл не выбран .

Далее я делаю следующее:

elem = driver.find_element_by_xpath('//input[@id="fileinput"]')
elem.send_keys('/Users/me/2018-01-29 - SR00281.pdf')

Вместо Файл не выбран , теперь я вижу путь к файлу в виде строки на веб-странице:
2018-01-29 - SR00281.pdf .

Однако, насколько я могу судить, ничего не загружено.

Я не могу найти кнопку «Отправить» на странице (скрытую или видимую). Существует «Загрузить файл» button, который обычно предназначен для ручной загрузки, но открывает диалоговое окно выбора файла на моем MacOS.

Я также попытался отправить ключ возврата в поле ввода после ввода пути через xp_up_elem.send_keys(Keys.RETURN), но затем Selenium выдал исключение FileNotFound, ссылаясь на код Unicode для ключа возврата.

FWIW, вот как выглядит код страницы для скрытого поля ввода:

<div class="btn btn-primary btn-lg pull-right fileInputWrapper ipadUploadButton" data-bind="visible: isMobileDevice(), enable: app.session.isActive()" style="">
    <span data-i18n="UploadFile">Upload file</span>
    <input class="fileInput hiddenInput" id="fileinput" type="file" accept="image/jpeg,application/pdf,image/png,image/tif" style="opacity: 100;">                    
</div>

Есть ли что-нибудь, что можно сделать в этот момент? Есть ли какой-нибудь способ для JavaScript или чего-либо еще инициировать фактическую загрузку введенного пути?

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