Python:if ... elif没有返回正确的结果

时间:2019-05-15 12:55:26

标签: python selenium if-statement

作为一个练习项目的一部分,我和一个朋友正在编写脚本,以简化资产管理软件。我们将自动填写必填字段,然后按一下签出(例如电话)所需的所有按钮。 搜索特定设备后,有两个选项: -找到设备并可用,因此可以检出 -找到设备但不可用,因此无法检出

为实现此目的,我们编写了一个if语句,检查“签出”或“签入”,并因此为我们提供了下一个选项。

我们已经尝试了各种使用缩进的方法,颠倒了语句的顺序,...脚本似乎从来没有达到“其他”的地步。当前状态为“签到”时,会显示消息框,要求您重新开始,但是当当前状态为“签出”时,它实际上不会输出“ 5000”。

我们还尝试过使用Elif代替其他内容,并指定:elif browser.find_element_by_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")

状态为“签到”时,需要弹出消息框,要求重新开始(此操作有效)。当状态为“ checkout”时,脚本需要移至else语句并以5000作为示例。

1 个答案:

答案 0 :(得分:0)

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')