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帮我解决这个问题吗。
如果您的输入不允许多个文件,那么这是不可能的。您必须选择file1,上传,然后返回页面,对每个文件重复该过程。
您是否尝试在每次迭代中声明您的web元素?
像这样?
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])