在python

时间:2019-09-30 13:52:59

标签: selenium dialog webdriver headless

我试图以无头模式使用selenium chrome驱动程序将文件上传到Web,但是Web不支持使用send_key的输入标签,它会打开Chrome文件上传对话框。我尝试使用pyautogui来处理键盘,并在计算机中向对话框输入文件路径,但这在没有无头模式的情况下仍然有效。

是否有解决此上传问题的想法?

1 个答案:

答案 0 :(得分:0)

您可能想尝试运行一些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到隐藏的元素。