I'm trying to use the selenium chrome driver in headless mode to upload a file to a web, but the web doesn't support the input tags to use send_key
, it opens a Chrome
File Upload dialog. I try to use pyautogui to handle keyboard and type the file path in my computer to the dialog, but it just works without headless mode.
Is there any idea to solve this upload problem?
You might want to try running some Javascript to reveal the input
element. I've personally run tests in headless mode that perform this exact function with success.
# Fetch file input element
fileInput = driver.find_element_by_xpath("//input[@type='file']")
# Execute Javascript to reveal the element
driver.execute_script("arguments[0].style.display = 'block';", fileInputElement)
# Send keys to file input
fileInput.send_keys("Path/To/File/To/Upload")
Once you do this, you can send_keys
to the hidden element.