如果…elif没有返回正确的结果

2024-04-16 10:12:09 发布

您现在位置:Python中文网/ 问答频道 /正文

作为一个实践项目的一部分,我和一个朋友正在编写一个脚本,使资产管理软件更容易。我们正在自动填写必填字段,并按所有需要签出的按钮,例如电话。 搜索特定设备后,有两个选项: -设备已找到并且可用,因此可以签出 -设备已找到但不可用,因此无法签出

为了实现这一点,我们编写了一个if语句,检查“Checkout”或“Checkin”,并相应地给出下一个选项。你知道吗

我们试过各种各样的方法,用缩进,颠倒语句的顺序。。。剧本似乎从来没有提到“其他”的问题。当当前状态为“checkin”时,它会向messagebox请求重新开始,但当当前状态为“checkout”时,它不会实际打印“5000”。你知道吗

我们还尝试使用elif代替else,指定:elifbrowser.find\元素\u by \u xpath('//*[@title=“签出此项目”]'): 但即便如此,它也从来没有真正进入另一个领域。你知道吗

if browser.find_element_by_xpath('//*[@title="Check this item in so it is available for re-imaging, re-issue, etc."]'):
    print("1")
    statusResult = tk.messagebox.askquestion('Device not available', 'Device has been checked out already. Do you wish to start over?', icon='warning')
    if statusResult == 'yes':
        print("2")
    elif statusResult == 'no':
        print("3")
else:
    print("5000")

当状态为“checkin”时,需要弹出消息框,要求重新开始(这正在工作)。当状态为“checkout”时,脚本需要移动到else语句并打印5000作为示例。你知道吗


Tags: 项目脚本byif状态选项语句find
1条回答
网友
1楼 · 发布于 2024-04-16 10:12:09

find_element_by_*方法不返回布尔值。。不能像示例那样将它们与if语句一起使用。它们要么返回WebElement(找到时),要么引发selenium.common.exceptions.NoSuchElementException(找不到时)。你知道吗

try:
    browser.find_element_by_xpath('//*[@title="Check this item in so it is available for re-imaging, re-issue, etc."]'):
    print('found')
except NoSuchElementException:
    print('not found')

相关问题 更多 >