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() 上传多个文件。 在这里它将在第 1 次迭代中正常工作,在第 2 次迭代中它将上传 2 个文件,在第 3 次迭代中上传 3 个文件。在每次迭代中,都会上传重复文件。 我需要一个解决方案来使用 for 循环一个一个地上传文件而不重复。 我知道我们可以像这样一次上传所有文件
files = file1 + '\n' + file2 + '\n' + file3
uploadButton.send_keys(files)
但是我不想一次上传所有文件我必须在使用for循环中一个一个地上传。 任何人都可以使用 Python + Selenium 帮助我解决这个问题吗?
如果您的输入不允许多个文件,那么这是不可能的。您必须选择文件 1,上传,然后返回页面并为每个文件重复该过程。
您是否尝试过在每次迭代中声明您的网络元素?
像这样?
pdfs =[file1, file2, file3]
for i in range(len(pdfs)):
uploadButton = browser.find_element_by_xpath("//input[@type='file']")
uploadButton.send_keys(pdfs[i])
每次发送路径前使用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])