У меня есть горизонтальная форма с кнопкой загрузки, как в исходном коде ниже. Я пытаюсь использовать селен для ввода пути к файлу «newRes» ниже в горизонтальное поле. Я пробовал все строки кода ниже. Я закомментировал каждую неудачную попытку. Все они выдают ошибки, связанные с невозможностью найти элемент. Я новичок в селене, может кто-нибудь, пожалуйста, дайте мне знать, какую часть исходного кода я должен искать ниже, и какие-либо советы о том, как ввести путь к файлу «newRes» в поле, которое в настоящее время показывает «oldFile.docx», был бы очень признателен.
код:
newRes='/Users/new_file.docx'
# upload_element = driver.find_element_by_link_text(“oldFile.docx")
# upload_element = driver.find_element_by_link_text("Upload")
# upload_element = driver.find_element_by_id('resume')
# upload_element = driver.find_element_by_id('resumeUpload')
upload_element.send_keys(newRes)#+keys.Keys.ENTER)
# assert 'Resume' in driver.page_source
# action = action_chains.ActionChains(driver)
# action.send_keys(newRes)
# action.perform()
исходный код:
<div class = "form-group has-feedback" data-ng-switch = "isOnEditMode" data-ng-class = "{'has-success': (profile.resume.fileName && frmInputResume.resumeFile.$error.diceFileFormat==false && frmInputResume.resumeFile.$error.diceMaxFileUploadSize==false), 'has-error': (!profile.resume.fileName || frmInputResume.resumeFile.$error.diceFileFormat == true || frmInputResume.resumeFile.$error.diceMaxFileUploadSize == true)}">
<!-- ngSwitchWhen: true --><div data-ng-switch-when = "true" class = "ng-scope">
<label class = "col-md-3 profile-summary-label">Résumé:</label>
<div class = "col-md-6 col-lg-7 col-xs-12">
<div id = "resumeUpload" class = "file-input-btn btn-block">
<input type = "file" name = "resumeFile" id = "resumeFileInput" data-dice-file-input-reader = "" data-file-model = "resume" data-ng-model = "resumeInput" data-supported-file-extension-pattern = "diceRegex.supportedFileExtensions" data-max-file-upload-size = "2048000" data-file-read-callback = "uploadResume(resume)" class = "ng-pristine ng-valid">
<span class = "btn btn-default btn-lg btn-file-name ng-binding" data-ng-class = "{'text-muted': !profile.resume.fileName}">old_file.docx</span>
<span class = "btn btn-default btn-lg btn-file-choose">Upload</span>
</div>
<span class = "glyphicon form-control-feedback" style = "line-height:46px; height:46px; width:46px;" data-ng-class = "{'icon-filled-check-4': (profile.resume.fileName && frmInputResume.resumeFile.$error.diceFileFormat == false && frmInputResume.resumeFile.$error.diceMaxFileUploadSize==false), 'icon-filled-delete-2': (!profile.resume.fileName || frmInputResume.resumeFile.$error.diceFileFormat==true || frmInputResume.resumeFile.$error.diceMaxFileUploadSize == true)}"></span>
<span class = "error ng-hide" ng-show = "frmInputResume.resumeFile.$error.diceFileFormat" style = "color: #C00;">We support .doc, .docx, .pdf, .txt, .rtf, up to 2MB.</span





Попробуйте этот код ниже. Это загрузит файл, который вы хотите.
file_upload = driver.find_element_by_id("resumeFileInput")
file_upload.send_keys(/path/to/file) # Like "C:\user\desktop\test1.txt"
Пожалуйста, дайте мне знать, если это работает для вас.