[英]upload files with selenium webdriver python
嘗試一下AutoIT。
它非常易於使用並且可以完成工作。
首先使用webdriver腳本單擊“上傳”按鈕,然后使用以下命令運行AutoIT .exe文件:
import subprocess
subprocess.Popen('[name_of_your_script].exe')
然后使用預期條件wait.until
提供一個wait.until
,以便它等待文件完成上傳。
下面的示例AutoIT代碼將選擇一個名為“ AAUPLOADFILE.png”的文件:
Local $hWnd=WinWait("[CLASS:#32770]","",10)
ControlFocus($hWnd,"","Edit1")
; Wait for 2 seconds.
Sleep(2000)
ControlSetText($hWnd, "", "Edit1", "AAUPLOADFILE.png")
Sleep(2000)
; Click on the Open button
ControlClick($hWnd, "","Button1");
編寫腳本后,右鍵單擊該文件,然后選擇“編譯腳本”,這將創建一個.exe文件。
我也有使用Python和Selenium上傳的問題。 這是因為上傳Web表單不可見,並且位於“上傳圖片”下方。 (隱藏的上傳表單)
所以我做了解決方法。
# Try to open page with upload form
driver.get('https://bla.com/library/browser')
# Waiting for upload element with name upload-search-block
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "upload-search-block")))
# Relocate hidden upload form using JS
driver.execute_script("document.getElementById('upload-search-block').style.left='200px';")
driver.execute_script("document.getElementById('upload-search-block').style.top='170px';")
# And upload file in the end
upload = driver.find_element_by_id('upload-search-block')
upload.send_keys('/tmp/custom_doc.docx')
祝好運。
使用Python和Selenium將照片上傳到Craigslist時解決了此問題
def add_photo(self, filepath_to_photo):
photo_filepath_input_box = self.driver.find_element_by_xpath("//input[@type='file']")
photo_filepath_input_box.send_keys(filepath_to_photo) # "/home/cchilders/photos/myhouse/upperrightbedroom/photo1.png"
上載窗口是系統窗口,不在web視圖中。 硒Web驅動程序只能控制Web視圖中的內容。 您將需要將選擇文件的任務移交給另一個庫,例如AutoIT。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.