gpt4 book ai didi

python - 我们如何等待消息文本在 selenium 中弹出

转载 作者:太空宇宙 更新时间:2023-11-04 05:44:07 25 4
gpt4 key购买 nike

我有一个包含上传文件功能的 selenium 应用程序,每次在网站上上传后都会递归调用该功能

问题:

该函数被调用得非常快,它没有等待上传完成。这搞乱了整个申请流程。我知道我可以添加 time.sleep() 但是我不知道文件的大小以及上传需要多长时间。所以我更喜欢添加检查以查看文件是否已上传

我的解决方案

对我来说幸运的是,上传完成后会弹出一条成功的消息

enter image description here

所以我决定添加等待成功消息弹出的success_element,如下面的代码所示

def upload(driver, fileNum, filePath):
#click ok to upload
ok_link = driver.find_element_by_class_name("borderButton")
ok_link.click()
#wait for success message to pop out( FAILS )
success_wait = WebDriverWait(driver, 1200)
success_element = success_wait.until(EC.visibility_of_element_located(By.LINK_TEXT("File(s) have(s) been uploaded successfully!")))
#call function again to upload more after succesful message pops out
upload(driver, fileNum, filePath)

错误:

我在第一组文件上传后立即在下面收到此错误,因为它没有立即找到成功消息,无论如何它都不应该,我认为它会在上传完成后等待 1200秒(最多大约 20 分钟)

我该如何解决这个问题。还有其他解决方案吗?

success_element = success_wait.until(EC.visibility_of_element_located(By.LINK_TEXT("File(s) have(s) been uploaded successfully!"))) TypeError: 'str' object is not callable

最佳答案

对于所有遇到同样问题的人,我找到了一个解决方案,它使用 EC.presence_of_element_located 代替。等待定位元素或在 20 分钟后抛出错误

success_wait = WebDriverWait(driver, 1800)
success_element = success_wait.until(EC.presence_of_element_located((By.ID, "successmessage")))

关于python - 我们如何等待消息文本在 selenium 中弹出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32873021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com