[英]Upload multiple files using Python Selenium WebDriver
我有一個 html 元素
<input type=file multiple="">
如何使用 send_keys 上傳多個文件?
目前這適用於上傳單個文件。 我想用它來上傳多個文件
我試過逗號分隔的路徑,但沒有運氣。
首先,將所有文件發送到元素,然后提交。
以下是 Ruby 代碼,但您可以對 Python 應用相同的邏輯:
uploader = driver.find_element(id: 'file-upload')
uploader.send_keys 'path_to_file1'
uploader.send_keys 'path_to_file2'
uploader.send_keys 'path_to_file3'
.
.
.
uploader.submit
我不確定這是否可行,但請嘗試一下,然后讓我知道結果。
這是一個適用於我上傳多張照片的特定情況的示例,可能會幫助某人...
Photos
是一個字符串數組,即['/Users/foo/bar/beautiful_forest-1546653.jpg', '/Users/foo/bar/DTHalloween.jpg']
然后我循環並通過send_keys
上傳它們。 我通過檢查上傳的文件名是否存在於 DOM 中來確保它們被上傳,如果成功(特定於我的情況)。 FWIW,順便說一句,我正在測試react.js
網絡應用程序。
def uploadPhoto(self, photos):
try:
drop_zone = self.driver.find_element_by_id('photo-file-input')
alreadyUploaded = [] # keep track of uploaded files
for photo in photos:
photo_name = photo.split('/')[-1].split('.')[0]
if photo_name.lower() in alreadyUploaded:
print("Photo already uploaded with name: ( "+ photo_name.lower()+" )")
continue
alreadyUploaded.append(photo_name.lower())
drop_zone.send_keys(photo)
try:
WebDriverWait(self.driver, 5).until(
EC.presence_of_element_located((By.XPATH, '//img[contains(@data-galleryid, '+ photo_name +')]'))
)
except Exception, e:
raise Exception(e)
return True
except Exception, e:
print 'Failed to upload photo {}'.format(str(e))
return False
path = “/home/downloads/” send_keys(path + “file1.csv \\n” + path + “file2.csv”)
我發現它在我的代碼中工作。 請嘗試此操作並告訴我您遇到的錯誤的最新信息。
我試過這個。 uploader.send_keys 'path_to_file1' 將上傳文件 1,當我嘗試上傳文件 2 時,
拋出異常表示無法與“上傳者”元素進行交互
我做了一個 uploader.is_enabled()
它給了我假的
我沒有測試這段代碼,但我認為它應該可以工作
image_string = " ".join(images_array)
driver.find_element_by_class_name('PhotoInputFile').send_keys(image_string)
time.sleep(2)
driver.find_element_by_class_name("ButtonUploadPhotos").click()
嘗試使用它,因為對我來說有效:
@staticmethod
def set_multiple_file_file():
element = (INSERT_FILE)
ROOT_DIR = your.path
first_path = archive1.something
second_path = archive2.something
third_path = archive3.something
element.send_keys(ROOT_DIR + first_path + ROOT_DIR + second_path + ROOT_DIR + third_path)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.