如何使用python+selenium上传文件?

如何使用python+selenium上传文件?,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我需要上传文件。我选择了文件格式。我点击选择文件按钮,在窗口中选择文件,然后开始上传 这是表格 <form id="fileupload" method="POST" enctype="multipart/form-data" data-confirm="true"> <div class="uploadForm"> <div class="browseUploadLeft"> <i class="icon icon-discontinued-uploa

我需要上传文件。我选择了文件格式。我点击选择文件按钮,在窗口中选择文件,然后开始上传

这是表格

<form id="fileupload" method="POST" enctype="multipart/form-data" data-confirm="true">
<div class="uploadForm">
<div class="browseUploadLeft">
<i class="icon icon-discontinued-upload"></i>
<h3>Browse and choose</h3>
<p>files from your computer</p>
</div>
<div class="browseUploadRight">
<p class="browseInfo is-hidden">Need help? See <span>Upload Rules</span></p>
<span class="button button-pink buttonFullWidth">choose files to upload
<input type="file" id="fileUploadField" name="Filedata" multiple class="filemultiple video" />
</span>
<p class="sizeNote">Maximum file size limit is 10GB</p>
</div>
</div>
<input type="hidden" name="userId" value="8996317" />
<input type="hidden" name="videoId" class='be_video_id' id='be_video_id' value="" />
<input type="hidden" id="_token" name="_token" value="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJodHRwOlwvXC93d3cueW91cG9ybi5jb20lIiwic3ViIjoiODk5NjMxNyIsImF1ZCI6Imh0dHA6XC9cL3d3dy55b3Vwb3JuLmNvbSUiLCJpYXQiOjE1MDkzNTI5MjEsImV4cCI6MTUwOTM4ODkyMX0.DSMPckUG3ZcL6Zrbn1WWrLgLzJ_tdw3TOZ2hnb2z60qSWMMpfZghJnrliSkwAQVRNjl6H-VKDCZBrlKvGwO0WQ" />
</form>
但是我在执行代码时出错了

      File "yp.py", line 40, in <module>
        file.submit()
......

       Message: Element is no longer attached to the DOM
如何以正确的方式将文件发送到此表单?如何开始上载文件?

尝试设置完整路径:

driver.find_element_by_id("fileUploadField").send_keys(os.getcwd()+"/1.m4")

首先安装win32com.client。要在cmd中安装win32com.client类型

pip install pypiwin32
现在在点击上传后,添加下面的代码来传递需要上传的文件地址

browser = webdriver.Firefox()
browser.get("url") 
time.sleep(10)
browser.find_element_by_id("fileUploadField").click()
shell = win32com.client.Dispatch("WScript.Shell")
shell.Sendkeys("D:\\FileLocation\\1.m4")
shell.Sendkeys("{ENTER}")

注意:如果您在安装win32com.client时遇到任何问题,请检查您是否安装了适用于32位操作系统的python,如果没有,请确保您已安装适用于32位操作系统的python,即使您的操作系统是64位操作系统。安装过程中不会出现任何问题,win32com.client将在那里工作

谢谢。但我使用的是Ubuntu 16 x64服务器
browser = webdriver.Firefox()
browser.get("url") 
time.sleep(10)
browser.find_element_by_id("fileUploadField").click()
shell = win32com.client.Dispatch("WScript.Shell")
shell.Sendkeys("D:\\FileLocation\\1.m4")
shell.Sendkeys("{ENTER}")