簡體   English   中英

使用selenium webdriver python上傳文件

[英]upload files with selenium webdriver python

我想使用網絡驅動程序來選擇文件,但按照其他答案,它們將無法正常工作。 他們說只給按鈕一個文件路徑,這什么也沒做。 單擊按鈕后,上傳看起來像這樣:

在此處輸入圖片說明

這是其他人說的要執行的操作,但不起作用:

element = driver.find_element_by_name("file")
element.send_keys("/home/pavel/Desktop/949IH3GNHAo.jpg")

進入webdriver實例后如何提交文件? 謝謝

嘗試一下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.

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