在 python 中使用 selenium webdriver 在无头模式下通过 Chrome 文件上传对话框上传文件

upload file by Chrome File Upload dialog using selenium webdriver in headless mode in python

我正在尝试在无头模式下使用 selenium chrome 驱动程序将文件上传到网络,但网络不支持使用输入标签 send_key,它会打开Chrome 文件上传对话框。我尝试使用 pyautogui 来处理键盘并在我的计算机中将文件路径输入到对话框中,但它在没有无头模式的情况下也能正常工作。

有什么办法可以解决这个上传问题吗?

您可能想尝试 运行宁一些 Javascript 来揭示 input 元素。我个人 运行 在无头模式下测试成功执行了这个确切的功能。

# 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")

执行此操作后,您可以 send_keys 到隐藏元素。