小能豆

Python Selenium send_keys() 方法中重复文件上传

py

pdfs =[file1, file2, file3]
uploadButton = browser.find_element_by_xpath("//input[@type='file']")
for i in range(len(pdfs)):
   uploadButton.send_keys(pdfs[i])

上面的代码是我在 ChromeDriver 中使用 send_keys() 上传多个文件时使用的。在这里,它在第一次迭代中运行良好,在第二次迭代中它将上传 2 个文件,在第三次迭代中上传 3 个文件。在每次迭代中都会上传重复的文件。我需要一个解决方案,使用 for 循环逐个上传文件而不重复。我知道我们可以像这样一次上传所有文件

files = file1 + '\n' + file2 + '\n' + file3
uploadButton.send_keys(files)

但我不想一次上传所有文件,我必须使用 for 循环逐个上传。有人能用 Python + Selenium 帮我解决这个问题吗?


阅读 7

收藏
2025-01-13

共1个答案

小能豆

每次发送路径之前使用clear()方法清除输入。您的代码应如下所示:

pdfs =[file1, file2, file3]
uploadButton = browser.find_element_by_xpath("//input[@type='file']")
for i in range(len(pdfs)):
   uploadButton.clear() # Add this line to clear the input
   uploadButton.send_keys(pdfs[i])
2025-01-13