【发布时间】:2019-09-30 13:52:59
【问题描述】:
我正在尝试在无头模式下使用 selenium chrome 驱动程序将文件上传到网络,但网络不支持使用 send_key 的输入标签,它会打开一个 Chrome 文件上传对话框。我尝试使用 pyautogui 处理键盘并将计算机中的文件路径输入到对话框中,但它只是在没有无头模式的情况下工作。
有没有办法解决这个上传问题?
【问题讨论】:
标签: selenium dialog webdriver headless
我正在尝试在无头模式下使用 selenium chrome 驱动程序将文件上传到网络,但网络不支持使用 send_key 的输入标签,它会打开一个 Chrome 文件上传对话框。我尝试使用 pyautogui 处理键盘并将计算机中的文件路径输入到对话框中,但它只是在没有无头模式的情况下工作。
有没有办法解决这个上传问题?
【问题讨论】:
标签: selenium dialog webdriver headless
您可能想尝试运行一些 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 隐藏元素。
【讨论】: