在python+selenium中无需输入即可上传图像



我有python 3.8,使用输入类型="文件";它复制了图像,但无法正常工作。有没有办法把图像拖到这个区域?

我的代码:

from selenium import webdriver 
import time
url="https://www.milanuncios.com/publicar-anuncios-gratis/media?idanuncio=365084685&contra=3W45"
browser = webdriver.Firefox()  
browser.get(url)
time.sleep(4)
userID = browser.find_element_by_xpath(".//*[@type='file']")
userID.send_keys('foto_1.jpg')
time.sleep(2)
userID.send_keys('foto_2.jpg')

发送每张图片后,将Input的值设置为";。

有两种方法可以尝试:

  1. clear((,如果文本是文本输入元素,则清除文本
userID.send_keys('foto_1.jpg')
userID.clear()
userID.send_keys('foto_2.jpg')
  1. 使用纯js设置值
userID.send_keys('foto_1.jpg')
driver.execute_script("arguments[0].value = '';", userID)
userID.send_keys('foto_2.jpg')

输入字段支持多个文件上传(节点包含multiple布尔属性(,因此您可以尝试同时上传两个文件:

userID = browser.find_element_by_xpath(".//*[@type='file']")
userID.send_keys('foto_1.jpg' + 'n' + 'foto_2.jpg')

userID = browser.find_element_by_xpath(".//*[@type='file']")
files = ['foto_1.jpg', 'foto_2.jpg']
userID.send_keys('n'.join(files))

最新更新