微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的硒预期条件不能作为 python if 语句中的条件?

如何解决为什么我的硒预期条件不能作为 python if 语句中的条件?

我在下面有一个功能,可以单击我页面上表单上的提交按钮。为了成功提交表格,必须附上一份文件。但是,有时根据数据库链接方式,保存的文档不会填充为已上传

这是一个小细节,优先提交表单。我创建了一个 if 语句来检查上传按钮是否存在。如果是,那么它应该从我的电脑上传一个文件,然后点击提交按钮。如果不是,则只需单击提交按钮即可。

上传按钮存在时,这有效。然而,当它不是时,它会卡在 if 条件上,而不会进入 else 子句。


def submit_draw_request(driver,document_file_path):
    if EC.visibility_of_element_located((By.XPATH,"//button[text()='Upload']")):
        shared.upload_file_from_computer(driver,"//input[@class='MultipleFileUploadWidget']",document_file_path)
        time.sleep(2)
        shared.click_button(driver,elements.submit_button)
    else:
        time.sleep(2)
        shared.click_button(driver,elements.submit_button)

解决方法

您似乎缺少定义预期条件超时。
所以它应该是这样的:

wait = WebDriverWait(driver,10)
def submit_draw_request(driver,document_file_path):
    if wait.until(EC.visibility_of_element_located((By.XPATH,"//button[text()='Upload']"))):
        shared.upload_file_from_computer(driver,"//input[@class='MultipleFileUploadWidget']",document_file_path)
        time.sleep(2)
        shared.click_button(driver,elements.submit_button)
    else:
        time.sleep(2)
        shared.click_button(driver,elements.submit_button)
,

您可以尝试在 python 中使用 try-except 块。在使用 WebDriverWaitexpected_conditions

时还需要进行一些导入
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
try:
    wait.until(EC.visibility_of_element_located((By.XPATH,"//button[text()='Upload']")))
    shared.upload_file_from_computer(driver,document_file_path)
    time.sleep(2)
    shared.click_button(driver,elements.submit_button)       

except:
    time.sleep(2)
    shared.click_button(driver,elements.submit_button)

try 块可让您测试代码块的错误。
except 块可让您处理错误。
finally 块可让您执行代码,而不管 try- 和 except 块的结果如何。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?