我需要上传文件。我有“选择文件”表格。我点击“选择文件”按钮,在上传开始后在窗口中选择文件。
这是表格。
<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>
我想用python + selenium做这件事。我有代码。
browser = webdriver.Firefox()
browser.get("url")
time.sleep(10)
browser.find_element_by_id("fileUploadField").click()
file = browser.find_element_by_id("fileUploadField")
file.send_keys("1.m4")
file.submit()
但是在执行代码时我遇到了错误。
File "yp.py", line 40, in <module>
file.submit()
......
Message: Element is no longer attached to the DOM
如何以正确的方式将文件发送到此表单?如何启动上传文件?
答案 0 :(得分:1)
首先安装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将在那里工作
答案 1 :(得分:0)
尝试设置完整路径:
{{1}}