Вы можете попробовать объединить ваши операторы find_element
и send_keys
здесь. Ничто в вашем коде не указывает, почему изображения будут загружаться дважды, хотя это может быть основной проблемой на самой веб-странице и в том, как она была запрограммирована для приема файлов.
from time import sleep
browser = webdriver.Chrome()
browser.get(link)
file_list = []
file_list.append('D:\\01.jpg')
file_list.append('D:\\02.jpg')
file_list.append('D:\\03.jpg')
for img in file_list:
print(img)
browser.find_element_by_name('upload').send_keys(img)
sleep(5)
Если img
печатается только 3 раза, но загружено 6 изображений, тогда это проблема веб-страницы, а не проблема Selenium. Я добавил 5-секундный явный спящий режим, чтобы дать веб-странице некоторое время для обработки загрузки файлов, что может быть частью проблемы здесь.
Вы можете изменить sleep(5)
на WebDriverWait
, используяExpectedConditions
для ожидания элемента на странице, указывающего, что загрузка прошла успешно - если вам нужна помощь в этом, лучше начать с просмотра HTML на странице, которую вы пытаетесь автоматизировать.
Надеюсь, это немного поможет.