Estoy tratando de escribir un script que pueda cargar un archivo .tar desde mi computadora local. Dado que tengo varios archivos upload.tar, idealmente me gustaría cargar el archivo upload.tar más reciente según la "Fecha de creación". Incluí un enlace al campo/botón de entrada debajo de 1 . No puede ingresar texto en el campo de entrada, pero muestra el nombre del archivo después de seleccionarlo. Al hacer clic en 'Elegir archivo' se abre la ventana de MacOS para buscar y seleccionar el archivo local.
driver.find_element(By.id, "root_file_upload").sendKeys("PATH") pero falló. También encontré que driver.find_element(By.XPATH, "//span[@class='buttonText']").click() abre la ventana de Mac y elimina la prueba. Estoy seguro de que es necesario un script de ejecución de Javascript, pero no estoy familiarizado con la forma de incorporarlo en el código Selenium/Python3. También estoy probando en el navegador Chrome. ¿Alguien podría guiarme sobre cómo crear un script que pueda cargar un archivo local (upload.tar) con un campo que no se pueda editar?
Aquí está el código inspeccionado:
<form action="/record/sandbox/consume" name="sandbox-upload-form" method="post" enctype="multipart/form-data"> <input type="file" name="hep_archive" id="root_file_upload" data-iconname="fa fa-upload" class="filestyle" tabindex="-1" style="position: absolute; clip: rect(0px, 0px, 0px, 0px);"> <div class="bootstrap-filestyle input-group"> <input type="text" class="form-control " placeholder="" disabled=""> <span class="group-span-filestyle input-group-btn" tabindex="0"> <label for="root_file_upload" class="btn btn-default "> <span class="icon-span-filestyle fa fa-upload"></span> <span class="buttonText">Choose file</span></label></span></div> <br> <input type="submit" value="Upload and Process" class="btn btn-primary" onclick="HEPDATA.hepdata_record.perform_upload_action(event, '#sandbox-upload-area', 'sandbox-upload-form', ['#955BA5', '#2C3E50'], 'large_area')"> </form>