Python 等待上载完成或弹出成功消息
我有一个selenium应用程序,可以将多个文件上传到web应用程序中 在上载网页上,您可以选择最多4次上载,这意味着如果我上载8次,我必须重复该步骤两次,以便在每个页面上上载4次 我使用selenium时遇到的问题是,它不会减慢速度,这意味着它不会等待前4个文件上传。它立即开始四处移动并上传其他4个文件,并使web小程序崩溃 当我单击“确定”上载4个文件时,我收到以下处理消息: 上传完成后,我收到一条成功的消息: 我的python代码:Python 等待上载完成或弹出成功消息,python,selenium,Python,Selenium,我有一个selenium应用程序,可以将多个文件上传到web应用程序中 在上载网页上,您可以选择最多4次上载,这意味着如果我上载8次,我必须重复该步骤两次,以便在每个页面上上载4次 我使用selenium时遇到的问题是,它不会减慢速度,这意味着它不会等待前4个文件上传。它立即开始四处移动并上传其他4个文件,并使web小程序崩溃 当我单击“确定”上载4个文件时,我收到以下处理消息: 上传完成后,我收到一条成功的消息: 我的python代码: def upload(driver, fileNum
def upload(driver, fileNum, filePath):
#if I have more than one file
if fileNum > 1:
#while number of files is not 0 and files being uploaded on one page are 4
while fileNum > 0 and i < 4:
#add file for every select button
select_link = driver.find_element_by_name('file_'+str(n))
select_link.send_keys(filePath[j])
i += 1
n += 1
j += 1
fileNum -= 1
#check if after uploading the 4 files there are still more files to upload
#if yes
if fileNum > 0:
#if yes, click ok to upload the first four and call the function again
ok_link = driver.find_element_by_class_name("borderButton")
ok_link.click()
#recursive call
upload(driver, fileNum, filePath)
else:
#just upload it without calling recursive function
ok_link = driver.find_element_by_class_name("borderButton")
ok_link.click()
def上传(驱动程序、fileNum、filePath):
#如果我有多个文件
如果fileNum>1:
#而文件数不是0,一页上载的文件数是4
当fileNum>0且i<4时:
#为每个选择按钮添加文件
选择链接=驱动程序。按名称(“文件”+str(n))查找元素
选择链接。发送密钥(文件路径[j])
i+=1
n+=1
j+=1
fileNum-=1
#检查上传4个文件后是否还有更多文件需要上传
#如果有的话
如果fileNum>0:
#如果是,请单击“确定”上载前四个,然后再次调用该函数
ok\u link=驱动程序。通过类名称(“边界按钮”)查找元素
确定链接。单击()
#递归调用
上载(驱动程序、fileNum、filePath)
其他:
#只需上传,无需调用递归函数
ok\u link=驱动程序。通过类名称(“边界按钮”)查找元素
确定链接。单击()
如您所见,当前4个文件被上传并且还有更多文件时,我递归调用函数upload(driver,fileNum,filePath)
有没有办法在调用递归函数之前等待前4个函数完成?要么等待成功的消息弹出,要么等待处理消息消失
我该怎么做?有两种方法可以等待特定作业完成
已加载到网页中。Mahsum Akbas得到了部分答案。您需要等待
处理…
弹出窗口出现然后消失。一种方法是
wait.until(EC.visibility_of_element_located((By.XX, "your progress bar selector")))
wait.until(EC.visibility_of_element_located((By.XX, "Processing... popup locator")))
wait.until(EC.invisibility_of_element_located((By.XX, "Processing... popup locator")))
这不是等待元素进度条显示吗?我想等待它消失,直到上传没有完成。请考虑编辑您的帖子,以添加更多的解释您的代码做什么,为什么它会解决这个问题。一个大多只包含代码的答案(即使它有效)通常不会帮助OP理解他们的问题。谢谢。为什么要在文本末尾添加
弹出定位器
“处理…弹出定位器”将被处理的定位器替换。。。出现的消息。你的问题中有一张图片。我没有它的HTML,所以我不能把它放在自己。定位器类似于.id(“processingPopupExampleId”)代码>