簡體   English   中英

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

[英]How to upload file using python+selenium?

我需要上傳文件。 我有“選擇文件”表格。 我點擊“選擇文件”按鈕,在窗口中選擇文件,然后開始上傳。

這是表格。

<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 +硒做到這一點。 我有代碼。

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

如何以正確的方式將文件發送到此表單? 如何開始上傳文件?

首先安裝win32com.client。 要安裝win32com.client,請在cmd中鍵入

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將在那里工作

嘗試設置完整路徑:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM